A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 董伟 黑马帝   /  2011-12-17 12:50  /  2604 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

.DataReader和DataSet的异同。求教

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

5 个回复

倒序浏览
ADO.NET有两个部分组成:.NET数据提供程序和数据集(DataSet);
.NET数据提供程序有4个核心对象:Connection对象、Command对象、DataReader对象和DataAdapter对象;其中DataReader用来从数据库中获取只读、只进的数据,
而DataSet是一个临时存储数据的地方,位于客户端的内存当中,DataSet是通过DataAdapter对象和数据库打交道的!!
可以说DataSet和DataReader之间的关系不是很大。。。

评分

参与人数 1技术分 +1 收起 理由
朱勋 + 1

查看全部评分

回复 使用道具 举报
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 使用道具 举报
牛奎 黑马帝 2011-12-26 10:43:15
板凳
DataReader直接读取数据库数据,
DataSet是内存中的数据库,从数据库中读取数据放到内存中

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
当然有区别了。

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

而DateReader则不同,它并不可以理解为一块虚拟的内存,它只能从数据库中读取,但是是直进直出型的,不可能在其中存储数据的,只能通过读取然后再把数据一次性的传给其他需要数据的控件等。

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
DataReader基于连接,它返回的数据是只读只向前的,适合简单地浏览且耗时比较短的操作
DataSet就像内存数据库,已经将数据保存在本地内存中,同时需要SqlDataAdapter作于DataSet和数据库之间,负责将数据从数据源读出来放在DataSet中,或将DataSet中的更改更新回数据库。
最直接的例子就是”阅读器关闭时尝试调用 Read 无效“,通过这个例子很好的解释两者的区别!


评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马