`
evget
  • 浏览: 144783 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
文章分类
社区版块
存档分类

Visual Studio.Net 2005中用SqlDataSource处理数据库特殊数据类型

阅读更多
  在Sql Server 2005中有哪些常用的数据类型呢?我想这些常用的数据类型应该是:char、nchar、varchar、nvarchar、text、ntext、int、float、money、bit、datetime、smalldatetime、image、binary、varbinary,还有些是在特定环境下需要的如xml、bigint、numberic、real、smallint、timestamp、tinyint等等其他一些更少用到的数据类型。这么多的数据类型,对开发人员来说最常使用的当然是存储字符串的数据类型了,他们有:char、nchar、varchar、nvarchar、text、ntext,那剩下来的自然就是这次随笔所说的“特殊数据类型”了。

  这些特殊数据类型包括:int、float、money、bit、datetime、smalldatetime、image、binary、varbinary、xml、bigint、numberic、real、smallint、timestamp、tinyint等其他没有列出的数据类型,为什么说这些数据类型是特殊的呢?那主要相对于Visual Studio.Net 2005中的SqlDataSource而言的,在SqlDataSource中默认处理且不需要考虑和编写代码的就是处理存储字符串的数据类型了,然而对于其他类型的则需要您或多或少的编写代码。我想这里面最复杂的莫过于处理二进制的数据了,比如保存到数据库的图片,加密字符串(如:密码)后的二进制等等,这两种数据在数据库中选择的数据类型应该是image和varbinary。下面就着重讲解一下如何保存这两种数据类型。

  1、首先假设数据库中已经存在一张表。其中数据字典如下表所示:



表1   客户信息表

  这是一个简单的数据库表,但是已经有了期望有的数据类型。

  2、其次让页面中SqlDataSource能连接到T_GuestInfo所在的数据库。

  3、设置SqlDataSource的InsertQuery为【insert into T_GuestInfo values(@guestname,@guestpsw,@gdatetime,@photo)】。

  4、此时假设页面上有了需要获取这些Sql变量的控件值,并且有一个Button,其属性ID是Btn1的按钮,用来提交数据。Button的Click事件伪代码如下所述:

1    protected void Btn1_Click(object sender, EventArgs e)
2    {
3            SqlDataSource1.InsertParameters.Add("guestname", tbguestname.Text.Trim());
4            SqlDataSource1.EnableCaching = false;
5            int i = SqlDataSource1.Insert();
6            if(i == 1)
7             {
8               //提示用户成功操作。
9           }
10    }


  此时还有几个参数没有被赋值怎么办?不用着急,在发给数据库前一定都让这些参数有值!接着……

  5、继续添加一个事件是SqlDataSource插入前的Inserting事件,即SqlDataSource1_Inserting。事件伪代码如下:

1    protected void SqlDataSource1_Inserting(object sender, SqlDataSourceCommandEventArgs e)
2    {
3        byte[] bt1 = guestpswbytes;//guestpswbytes是字符串密码转换为二进制数组后的值,需要您自己从相应控件中转换,这里没有提供此代码。
4        byte[] bt2 = photobytes;//photobytes同样需要您自己去写代码转换为二进制数组。
5        System.Data.SqlClient.SqlParameter guestpswdb= new System.Data.SqlClient.SqlParameter("@guestpsw", System.Data.SqlDbType.VarBinary);
6        guestpswdb.Value = bt1;
7        e.Command.Parameters.Add(guestpswdb);
8        System.Data.SqlClient.SqlParameter photodb = new System.Data.SqlClient.SqlParameter("@photo", System.Data.SqlDbType.Image);
9        photodb.Value = bt2;
10        e.Command.Parameters.Add(photodb);
11        System.Data.SqlClient.SqlParameter gdatetimedb = new System.Data.SqlClient.SqlParameter("@gdatetime", System.Data.SqlDbType.DateTime);
12        gdatetimedb .Value = DateTime.Now;
13        e.Command.Parameters.Add(gdatetimedb);
14    }


  此时按F5运行程序,插入数据,SqlDataSource就能很好的插入我们期望插入的数据了。当然在SqlDataSource_Inserting事件中您还可以写入各种数据库的数据类型,除了SqlDataSource_Inserting事件外,在SqlDataSource_Updating、SqlDataSource_Selecting和SqlDataSource_Deleting事件中同样如此。

  这样我们就完成了让Visual Studio.Net 2005中SqlDataSource插入、更新、查询和删除数据库特殊数据类型的任务了。

原文出处:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9090
分享到:
评论

相关推荐

    asp.net 2.0 数据库入门经典

    2. **数据源控件**:ASP.NET 2.0提供了多种数据源控件,如SqlDataSource、AccessDataSource、ObjectDataSource等,它们可以方便地连接到数据库并执行查询。这些控件使得开发者无需编写SQL语句,就能完成数据的检索、...

    ASP.NET应用教程

    通过ASP.NET的SqlDataSource控件,可以轻松地连接和查询SQL Server数据库,实现数据的展示、添加、删除和修改等功能。 ASP.NET还包括状态管理机制,用于在页面间或服务器请求之间保持数据。这包括视图状态、控制...

    ASP.NET—005:GridView增加一行JS实现

    ASP.NET GridView 控件是.NET Framework 中用于数据展示和操作的强大工具。在网页开发中,GridView 经常被用来展示数据库中的数据,支持多种内置功能,如排序、分页和筛选。在“ASP.NET—005:GridView增加一行JS...

    ASP.net GridView合并单元格

    ASP.NET GridView 控件是.NET Framework 中用于数据展示的强大工具,尤其在Web应用程序中,它能够以表格形式方便地展示和操作数据库数据。GridView允许开发者轻松地进行数据绑定、排序、分页以及对数据进行编辑、...

    精通asp.net2.0的web2.0 电子教程.rar

    ADO.NET是.NET Framework中用于数据访问的技术,它提供了DataSet、DataTable、DataAdapter等组件,方便与各种数据库进行交互。在ASP.NET 2.0中,可以利用SqlDataSource控件简化数据库操作。 6. **Web服务与AJAX** ...

    web程序设计复习题.pdf

    5. 数据源控件:提到了AccessDataSource, LinqDataSource, ObjectDataSource, SqlDataSource, XmlDataSource, SiteMapDataSource等,这些都是***中用于数据绑定的控件,能够帮助开发者将数据源绑定到Web页面控件上。...

    GridView控件功能(详解--增--删--改--查)

    在设计时,GridView可以通过Visual Studio的界面轻松配置,而在运行时,用户可以直观地查看、编辑和管理数据。 二、数据绑定 GridView控件首先需要与数据源绑定。这通常通过在后台代码中设置`DataSourceID`属性...

Global site tag (gtag.js) - Google Analytics