论文部分内容阅读
【摘要】DataSet和DataAdapter是ADO.NET中的两个核心对象,通过DataAdapter对象填充DataSet对象,客户端读取DataSet就可以获得需要的数据了。
【关键词】DataSet对象;DataAdapter对象;数据
1.引言
在使用ASP.NET构建动态网站时,有时需要对大量的数据进行读取操作,如果应用程序需要从数据库中读取50条数据,那么就需要读取50次,在读取的整个过程和数据库一直保持着连接的状态,这样就给数据库服务器加重了负担,如果还要对这50条数据进行修改,解决这个问题就需要用到DataSet对象和DataAdapter对象。
2.DataSet对象
2.1 DataSet对象简介
DataSet(数剧集)对象是数据的集合,可以把它作为内存中的数据库,DataSet对象的指针可以自由移动。DataSet对象的数据库和数剧是断开的。类似于生产的工厂,DataSet好比是一个工厂的临时仓库,每天把原料一次取出放入临时仓库,加工完后存在临时仓库中,最后再把一天完成的所有产品一次存放到仓库中。ADO.NET把数据库中的数据取出后保存在DataSet对象中,这样应用程序可以直接操作DataSet对象中的数据,完成操作后,再通过DataAdapter更新数据库中相应的数据。DataSet对象是一个或多个DataTable对象的集合,和SQL Server特别相似,由行、列、主键、外键等数据表中的数据关系信息组成。DataSet对象由一个或多个数据表组成,每个数据表就是一个DataTable对象,由行和列组成,每一行叫做DataRow,每一列叫做DataColumn。
2.2 创建DataSet对象
可使用关键字New创建DataSet对象。例如:DataSet dt=new DataSet();DataSet dt=new DataSet(“teachtable”);其中dt是定义的数据集对象,teachtable为数据集名称,可以省略。省略时创建的数据集名称为默认的NewDataSet。
2.3 DataSet对象的主要属性和方法
(1)属性
DataSetName:设置或获得当前DataSet对象的名称;Tables:获取包含在DataSet中的表的集合。
(2)方法
Clear:清除DataSet中全部表的全部数据;Clone:复制DataSet对象到另一个DataSet对象中,但是不复制任何的数据;Copy:复制DataSet对象,包括数据到另一个DataSet对象中。
3.DataAdapter对象
3.1 DataAdapter对象简介
DataAdapter(数据适配器)是数据库和DataSet对象之间的桥梁,服务器要将数据库中的数据放在DataSet中,就需要用到DataAdapter对象。使用DataAdapter对象要包含命名空间System.Data.SqlClient。使用DataAdapter把数据从数据库中读出来,然后放入到DataSet中的过程分两步:第一步,通过DataAdapter的SelectCommand属性把数据从数据库中读出来,SelectCommand是一个Command对象,第二步用DataAdapter的Fill方法把读出的数据填入到DataSet中。相反,DataSet中被修改过的数据重新存入到数据库中,是通过DataAdapter对象的Update方法来实现的。
3.2 DataAdapter对象的常用属性和方法
(1)属性
SelectCommand:设置或获取在数据库中选择记录的一个命令语句;DeleteCommand:设置或获取在数据库中删除记录的一个命令语句;UpdateCommand:设置或获取在数据库中更新记录的一个命令语句;InsertCommand:设置或获取在数据库中插入记录的一个命令语句。
(2)方法
Fill:把从数据库中读出的数据填充到DataSet数据集;Update:把DataSet数据集中的数据重新保存回数据库。
4.使用DataAdapter对象填充DataSet对象
使用DataAdapter对象填充DataSet对象的过程如下:
(1)创建Connection对象创建数据库连接。(2)创建sql数据库查询语句。(3)利用前两步创建的Connection数据库连接对象和sql语句创建DataAdapter对象,代码如下:SqlDataAdapter对象名=new SqlDataAdapter(sql语句,数据库连接名);例如:SqlDataAdapter ada=new SqlDataAdapter(sqlteach,teachconn);其中sqlteach表示sql语句,teachconn表示数据库连接。(4)创建DataSet数据集对象。(5)使用DataAdapter对象的Fill()方法来填充数据集,格式如下:DataAdapter对象.Fill(数据集对象,“数据表名称的字符串”);例如:ada.Fill(dt,“yonghu”);如果在数据集中原本没有yonghu表,那么在调用了Fill()方法后就会创建一个数据表yonghu,然后把查到的数据填充到yonghu数据表中。
5.保存DataSet中的数据
DataAdapter对象的Update()方法可以把数据集中修改过的数据保存回数据库。在.NET中有一个SqlCommandBuilder对象,可以自动生成UpdateCommand命令、InsertCommand命令、DeleteCommand命令,并且执行update、insert、delete相应的命令。这样被修改过的数据就可以重新保存回数据库。把数据集中的数据保存回数据库中的过程如下: (1)使用SqlCommandBuilder对象生成更新的命令,格式如下:
SqlCommandBuilder ds=new SqlCommand Builder(创建好的DataAdapter对象);
(2)使用DataAdapter对象的Update()方法,格式如下:
DataAdapter对象.Update(数据集对象,“数据表名称字符串”);例如,把就业信息管理系统中创建的数据集db中的student表中的第三行的学生的兴趣“唱歌”修改为“跳舞”,然后提交给数据库,相关的代码如下所示:
DataRow r=db.Tables[“student”].Rows[2];//需要修改的行
R[“xingqu”]=“跳舞”;//修改xingqu列的值
SqlCommandBuilder aa=new SqlCommand Builder(ada);
Ada.Update(db,“student”);
以上代码中DataRow表示每一行,数据表中的行的索引是从0开始的,因此第三行就用Row[2]来表示,使用“数据行对象[“列名”]”来读取每一列的数据。
6.结束语
实际上DataSet对象是客户端临时存放数据的一个容器,是一个非连接对象,它与数据库无关,DataAdapter对象是负责填充数据到DataSet对象中的表,还负责把用户对DataSet对象的表所做的修改更新回数据库,DataAdapter对象这个通道是双向的,可以把数据库中的数据读到内存的表中,还可把内存中的数据写回到数据库中。DataSet和DataAdapter相互配合可以执行添加、删除、修改、查询等操作。
参考文献
[1]刘旭光.ADO.NET对象的认识及其之间关系[J].数字技术与应用,2012(05).
[2]宋杨,黄智.ADO.NET中的五个主要对象的浅析[J].科技信息,2009(34).
[3]刘宝娥.利用ADO.NET技术开发SQL Server数据库的相关研究[J].赤峰学院学报(自然科学版),2012(03).
[4]高俊.ADO.Net数据访问技术分析[J].河南科技,2011(11).
作者简介:张影(1979—),女,黑龙江鹤岗人,中级讲师,主要从事计算机教学工作,研究方向:计算机应用技术。
【关键词】DataSet对象;DataAdapter对象;数据
1.引言
在使用ASP.NET构建动态网站时,有时需要对大量的数据进行读取操作,如果应用程序需要从数据库中读取50条数据,那么就需要读取50次,在读取的整个过程和数据库一直保持着连接的状态,这样就给数据库服务器加重了负担,如果还要对这50条数据进行修改,解决这个问题就需要用到DataSet对象和DataAdapter对象。
2.DataSet对象
2.1 DataSet对象简介
DataSet(数剧集)对象是数据的集合,可以把它作为内存中的数据库,DataSet对象的指针可以自由移动。DataSet对象的数据库和数剧是断开的。类似于生产的工厂,DataSet好比是一个工厂的临时仓库,每天把原料一次取出放入临时仓库,加工完后存在临时仓库中,最后再把一天完成的所有产品一次存放到仓库中。ADO.NET把数据库中的数据取出后保存在DataSet对象中,这样应用程序可以直接操作DataSet对象中的数据,完成操作后,再通过DataAdapter更新数据库中相应的数据。DataSet对象是一个或多个DataTable对象的集合,和SQL Server特别相似,由行、列、主键、外键等数据表中的数据关系信息组成。DataSet对象由一个或多个数据表组成,每个数据表就是一个DataTable对象,由行和列组成,每一行叫做DataRow,每一列叫做DataColumn。
2.2 创建DataSet对象
可使用关键字New创建DataSet对象。例如:DataSet dt=new DataSet();DataSet dt=new DataSet(“teachtable”);其中dt是定义的数据集对象,teachtable为数据集名称,可以省略。省略时创建的数据集名称为默认的NewDataSet。
2.3 DataSet对象的主要属性和方法
(1)属性
DataSetName:设置或获得当前DataSet对象的名称;Tables:获取包含在DataSet中的表的集合。
(2)方法
Clear:清除DataSet中全部表的全部数据;Clone:复制DataSet对象到另一个DataSet对象中,但是不复制任何的数据;Copy:复制DataSet对象,包括数据到另一个DataSet对象中。
3.DataAdapter对象
3.1 DataAdapter对象简介
DataAdapter(数据适配器)是数据库和DataSet对象之间的桥梁,服务器要将数据库中的数据放在DataSet中,就需要用到DataAdapter对象。使用DataAdapter对象要包含命名空间System.Data.SqlClient。使用DataAdapter把数据从数据库中读出来,然后放入到DataSet中的过程分两步:第一步,通过DataAdapter的SelectCommand属性把数据从数据库中读出来,SelectCommand是一个Command对象,第二步用DataAdapter的Fill方法把读出的数据填入到DataSet中。相反,DataSet中被修改过的数据重新存入到数据库中,是通过DataAdapter对象的Update方法来实现的。
3.2 DataAdapter对象的常用属性和方法
(1)属性
SelectCommand:设置或获取在数据库中选择记录的一个命令语句;DeleteCommand:设置或获取在数据库中删除记录的一个命令语句;UpdateCommand:设置或获取在数据库中更新记录的一个命令语句;InsertCommand:设置或获取在数据库中插入记录的一个命令语句。
(2)方法
Fill:把从数据库中读出的数据填充到DataSet数据集;Update:把DataSet数据集中的数据重新保存回数据库。
4.使用DataAdapter对象填充DataSet对象
使用DataAdapter对象填充DataSet对象的过程如下:
(1)创建Connection对象创建数据库连接。(2)创建sql数据库查询语句。(3)利用前两步创建的Connection数据库连接对象和sql语句创建DataAdapter对象,代码如下:SqlDataAdapter对象名=new SqlDataAdapter(sql语句,数据库连接名);例如:SqlDataAdapter ada=new SqlDataAdapter(sqlteach,teachconn);其中sqlteach表示sql语句,teachconn表示数据库连接。(4)创建DataSet数据集对象。(5)使用DataAdapter对象的Fill()方法来填充数据集,格式如下:DataAdapter对象.Fill(数据集对象,“数据表名称的字符串”);例如:ada.Fill(dt,“yonghu”);如果在数据集中原本没有yonghu表,那么在调用了Fill()方法后就会创建一个数据表yonghu,然后把查到的数据填充到yonghu数据表中。
5.保存DataSet中的数据
DataAdapter对象的Update()方法可以把数据集中修改过的数据保存回数据库。在.NET中有一个SqlCommandBuilder对象,可以自动生成UpdateCommand命令、InsertCommand命令、DeleteCommand命令,并且执行update、insert、delete相应的命令。这样被修改过的数据就可以重新保存回数据库。把数据集中的数据保存回数据库中的过程如下: (1)使用SqlCommandBuilder对象生成更新的命令,格式如下:
SqlCommandBuilder ds=new SqlCommand Builder(创建好的DataAdapter对象);
(2)使用DataAdapter对象的Update()方法,格式如下:
DataAdapter对象.Update(数据集对象,“数据表名称字符串”);例如,把就业信息管理系统中创建的数据集db中的student表中的第三行的学生的兴趣“唱歌”修改为“跳舞”,然后提交给数据库,相关的代码如下所示:
DataRow r=db.Tables[“student”].Rows[2];//需要修改的行
R[“xingqu”]=“跳舞”;//修改xingqu列的值
SqlCommandBuilder aa=new SqlCommand Builder(ada);
Ada.Update(db,“student”);
以上代码中DataRow表示每一行,数据表中的行的索引是从0开始的,因此第三行就用Row[2]来表示,使用“数据行对象[“列名”]”来读取每一列的数据。
6.结束语
实际上DataSet对象是客户端临时存放数据的一个容器,是一个非连接对象,它与数据库无关,DataAdapter对象是负责填充数据到DataSet对象中的表,还负责把用户对DataSet对象的表所做的修改更新回数据库,DataAdapter对象这个通道是双向的,可以把数据库中的数据读到内存的表中,还可把内存中的数据写回到数据库中。DataSet和DataAdapter相互配合可以执行添加、删除、修改、查询等操作。
参考文献
[1]刘旭光.ADO.NET对象的认识及其之间关系[J].数字技术与应用,2012(05).
[2]宋杨,黄智.ADO.NET中的五个主要对象的浅析[J].科技信息,2009(34).
[3]刘宝娥.利用ADO.NET技术开发SQL Server数据库的相关研究[J].赤峰学院学报(自然科学版),2012(03).
[4]高俊.ADO.Net数据访问技术分析[J].河南科技,2011(11).
作者简介:张影(1979—),女,黑龙江鹤岗人,中级讲师,主要从事计算机教学工作,研究方向:计算机应用技术。