日期:2014-05-18  浏览次数:20396 次

我做了三年,结果今天被一个还没毕业的人问住了,关于DATASET和DATAREAD谁更快
因为她在学校做的项目全都是DataReader,
而我用的全是dataSet,然后和她在网上查有一个人说dataReader比dataSet快(我当时真恨死这个人了)
那个女孩还很骄傲的说了一句:你看,是吧!
真是丢死人了,
大家在什么情况下用dataReader?(别说什么数据不在反复操作下,我要听比如列表之类的东西)
datareader比dataSet强在哪儿,
XX的

------解决方案--------------------
SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法。如果当创建 ASP.NET 应用程序时出现允许您使用它的情况,则 SqlDataReader 类提供比 DataSet 类更高的性能。情况之所以这样,是因为 SqlDataReader 使用 SQL Server 的本机网络数据传输格式从数据库连接直接读取数据。另外,SqlDataReader 类实现 IEnumerable 接口,该接口也允许您将数据绑定到服务器控件。DataSet作为一个功能强大的、支持离线的数据库,其对性能的开销也相对较大。
Sqldataread优点:读取数据非常快。如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多。缺点:直到数据读完才可close掉于数据库的连接。


Dataset是把数据读出,缓存在内存中。缺点:对内存的占用较高。如果对返回的数据需做大量的处理用Dataset比较好些可以减少对数据库的连接操作。优点:只需连接一次就可close于数据库的连接。

一般情况下,读取大量数据,对返回数据不做大量处理用SqlDataReader.对返回数据大量处理用datset比较合适.对SqlDataReader和Dataset的选择取决于程序功能的实现。 


以上内容仅供参考

------解决方案--------------------
DataReader占用很少的内存向前只读的,因此效率要高。但是对数据检索等处理的能力就比DataSet差多了。

当只要求获取数据的时候可以使用DataReader,而对数据处理相对多的时候还是使用DataTable或DataSet相对容易些。