datareader的理解,大家认为对不?

waxcz00 2009-04-11 06:59:00
今天听公司一人说,datareader每次read的时候,都是通过连接对象从数据库里面把适合的一条数据给取出来。我觉得这样似乎不对,因为从数据库取的话,取数据的速度会很慢。而dataset显然是把数据放到了内存的,根据.net的介绍,datareader的取数速度是快于dataset的。
大家说说看法
...全文
109 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sillf 2009-04-12
  • 打赏
  • 举报
回复
楼上的好像非常贴切,偶也是这样用的。其实这样就已经说明了,datareader这个对象中存储的是一个根据数据库查询语句生成的一个临时表,可以将它放到DataSet对象的表中.但是两个对象一个可以只读,一个可写
uncleson88 2009-04-12
  • 打赏
  • 举报
回复
我一般只读数据的话用DataReader, datatable.Load(datareader);
热学沸腾56 2009-04-11
  • 打赏
  • 举报
回复
学习...up
mylove_hong_2002 2009-04-11
  • 打赏
  • 举报
回复
差异在连接模式与非连接模式!
z392989029 2009-04-11
  • 打赏
  • 举报
回复
好细腻哦。。。
支持
我也知道不修改的数据就用DATAREAD,要修改就用DATASET
当然,看实际应用咯。。。
vrhero 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 waxcz00 的帖子:]
今天听公司一人说,datareader每次read的时候,都是通过连接对象从数据库里面把适合的一条数据给取出来。我觉得这样似乎不对,因为从数据库取的话,取数据的速度会很慢。而dataset显然是把数据放到了内存的,根据.net的介绍,datareader的取数速度是快于dataset的。
大家说说看法
[/Quote]
你同事是对的,你的理解不对...

不“通过连接对象从数据库里面取”难道从天上掉下来?DataSet也得“通过连接对象从数据库里面取”,而且不管是DataReader还是DataSet都“显然是把数据放到了内存”...只不过DataReader在Read以后就从内存中释放了那些数据而DataSet会保持...
xyz136299110 2009-04-11
  • 打赏
  • 举报
回复
是滴。。。
datareader是只读单向的取一条数据。。。。
kkun_3yue3 2009-04-11
  • 打赏
  • 举报
回复
只知道reader读取数据快
wuyq11 2009-04-11
  • 打赏
  • 举报
回复
DataReader对象提供一个单向向前移动且只读的记录集合,可以读取由Command对象执行的命令所产生的数据,只能与Command对象一起使用。
较为快速
不支持缓存、分页和动态排序
cppfaq 2009-04-11
  • 打赏
  • 举报
回复
你同事说的正确,
取数据不慢,慢的是建立和释放连接。
datareader适合于快速只读的数据库操作。



Should you use ADO.NET DataReader or DataSet?
http://www.simple-talk.com/dotnet/.net-framework/should-you-use-ado.net-datareader-or-dataset/
microblue 2009-04-11
  • 打赏
  • 举报
回复
应该有cache的。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧