我的位置: 首页 > 学习专区 > .NET技术 > DataReader和DataSet的异同

DataReader和DataSet的异同

2012-08-22 13:52:00
来源:
[导读] DataSet的定义:对象是ADO。NET中非连接存储和关系型数据处理的基础数据对象。可以将从数据库中取得的数据集合全部存储于DataSet对象中,操
DataSet的定义:对象是ADO。NET中非连接存储和关系型数据处理的基础数据对象。可以将从数据库中取得的数据集合全部存储于DataSet对象中,操作存储于DataSet的数据,然后再次连接到数据库,根据DataSet的数据更新目前数据库中的数据。

DataSet的主要方法:

1、Clear:清空DataSet的所有DataTable 2 Merge把两个DataSet合并成一个 3 AcceptChanges 更新对DataSet的所有更改 4 GetChanges获得对DataSet进行的所有更改 5 HasChanges 判断是否有对DataSet进行更改 6 放弃对DataSet对数据库进行的更改

对象:1 DataTable 记录集(相当于表) 2 DataColumn 记录集的字段(相当于列) 3 DataRow 记录(相当于行)4 DataView 数据视图,是基于DataSet对象中数据的查询条件的。5 DataRelation 定义不同DataTable 之间的关系

写了一个DataSet的代码清单

DataSet ds=new DataSet();

DataTable dt1=new DataTable();

DataTable dt2=new DataTable();

DataColumn dc1=new DataColumn(“a1″,typeof(int));

DataColumn dc1=new DataColumn(“a2″,typeof(int));

DataColumn dc1=new DataColumn(“a2″,typeof(int));

DataColumn dc1=new DataColumn(“a3″,typeof(int));

dt1.Column.Add(dc1);

dt1.Column.Add(dc2);

dt2.Column.Add(dc2);

dt2.Column.Add(dc3);

ds.Tables.Add(dt1);

ds.Tables.Add(dt2);

//在dt1和dt2之间建立一个名为a2的DataRelation

ds.Relation.Add(“a2″,ds.Tables["dt1"].Column["a2"],Tables["dt2"].Column["a2"]);

对象是对数据集合进行向前数条的读取

DataSet和DataReader都可以完成对数据的操作和存储

DataReader对数据读取方便而且快 ,而DataSet有强大的数据库操作功能和非连接访问模式

DataReader和DataSet最大的区别:DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnection的操作都会引发DataReader的异常..因为DataReader每次只在内存中加载一条数据,所以占用的内存是很小的..因为DataReader的特殊性和高性能.所以DataReader是只进的 读了第一条后就不能再去读取第一条了

DataSet则是将数据一次性加载在内存中.抛弃数据库连接..读取完毕即放弃数据库连接..因为DataSet将数据全部加载在内存中.所以比较消耗内存…但是确比DataReader要灵活..可以动态的添加行,列,数据.对数据库进行回传更新操作

应用:

1 当需要操作非连接数据,将数据发送到应用程序或客户端,提供使用者进行更改之后更新数据库的时候,用DataSet

2 当需要存储、传输、操作多个数据库表时,并且表之间存在着数据关系时,用DataSet

3 需要对数据进行调度操作时,如:数据分页浏览或跳转到固定记录的时候用DataSet

4 当需要一次性读取数据到客户端而且没有更新删除操作时建议使用DataReader

5 需要遍历一个数据集,对数据的每条记录进行只读时用DataReader

大家都关注: DataReader
评论
热点专题
>>