c# DataReader和用DataAdapter来填充DataSet 两者的效率的区别有多大?

我在写数据库访问类的时候,如果是要返回数据,我基本上写的都是DataAdapter这个连接对象,而不用reader这个非连接对象。用DataAdapter都习惯了,目前都不知道这两者的效率的区别有多大,请师兄指点。谢谢

表面上看 DataReader 要比 DataSet效率高.
因为DataReader是在线读取,也就是说在DataReader 读取数据期间,
客户端和数据库之间始终保持一个连接,一次只读一条数据;
而DataSet从数据库中读取一堆数据 到 客户端后就可以断开和数据库的连接了.
用 DataReader 会使数据库服务器的压力增大,会降低数据库服务器效率. (并发率高的情况下)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-24
一个快,一个功能强。只是读出然后填充到DataSet 的效率差的不多,DataReader还要你自己去写循环填充的代码。

要按照你程序的具体设计来用。本回答被提问者和网友采纳
第2个回答  2010-07-24
建议用DataAdapter,DataReader会对数据库进行独占式连接,独占的时候被人无法对数据库进行修改,当DataReader没有循环完的时候它会一直独占数据库。
DataAdapter是一次性将数据读取到内存中(也就是DataSet)。这样会好一些。
第3个回答  2010-07-24
没可比性,一个用空间换时间 ,这里的空间是内存,一个是用时间换空间!各有所用,看实际使用情况!
第4个回答  2010-07-24
没可比性,一个用空间换时间 ,这里的空间是内存,一个是用时间换空间!各有所用,看实际使用情况!

这个正解..
相似回答