黑马程序员技术交流社区

标题: DataReader和DataSet什么区别? [打印本页]

作者: 董伟    时间: 2011-12-17 12:50
标题: DataReader和DataSet什么区别?
.DataReader和DataSet的异同。求教
作者: 许全通    时间: 2011-12-17 15:35
ADO.NET有两个部分组成:.NET数据提供程序和数据集(DataSet);
.NET数据提供程序有4个核心对象:Connection对象、Command对象、DataReader对象和DataAdapter对象;其中DataReader用来从数据库中获取只读、只进的数据,
而DataSet是一个临时存储数据的地方,位于客户端的内存当中,DataSet是通过DataAdapter对象和数据库打交道的!!
可以说DataSet和DataReader之间的关系不是很大。。。
作者: 张大福    时间: 2011-12-18 10:24
DataSet可以离线处理,前后滚动,而DataReader不能离线处理,且是只读的向前的,不过速度明显会很快
DataSet可以存储数据库各种对象的,比如表触发器等,而DataReader只能存储游标记录
作者: 牛奎    时间: 2011-12-26 10:43
DataReader直接读取数据库数据,
DataSet是内存中的数据库,从数据库中读取数据放到内存中
作者: 刘冠杰    时间: 2011-12-26 23:48
当然有区别了。

一般情况下,DateSet是和DateAppter搭配着使用的,DateSet相当于一块虚拟的内存,而DateAppter正好可以从数据库中把查找到的数据以表的形式传递给DateSet,这样,DateSet就可以将自己被存进来的数据进行操作,譬如绑定到Gridview上面,称为数据源;

而DateReader则不同,它并不可以理解为一块虚拟的内存,它只能从数据库中读取,但是是直进直出型的,不可能在其中存储数据的,只能通过读取然后再把数据一次性的传给其他需要数据的控件等。
作者: 傅涌钦    时间: 2011-12-28 18:05
DataReader基于连接,它返回的数据是只读只向前的,适合简单地浏览且耗时比较短的操作
DataSet就像内存数据库,已经将数据保存在本地内存中,同时需要SqlDataAdapter作于DataSet和数据库之间,负责将数据从数据源读出来放在DataSet中,或将DataSet中的更改更新回数据库。
最直接的例子就是”阅读器关闭时尝试调用 Read 无效“,通过这个例子很好的解释两者的区别!







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2