C#中SqlDataReader与SqlDataAdapter获取数据集有何区别

之前一直有个误区,认为SqlDataAdapter不仅占内存,还没有SqlDataReader读取快,所以优选SqlDataReader。但是昨天与主管有意见上的争议,总觉得没弄明白不太甘心。

然后就研究了一番,首先了解二者的原理:

1.SqlDataReader提供一种从数据库读取行的只进流,

   SqlDataAdapter执行数据命令和数据连接,获取表数据填充到DataSet或DataTable中

2.使用SqlDataReader循环读取,直到完全读取完才断开数据库连接;而SqlDataAdapter执行命令后就断开了

***若获取数据后需要进行非DataSet或DataTable类型转换,并且数据量大的情况下,优选SqlDataReader,因为类型转换也是耗时的,数据量 越大越明显

***若获取到数据,不需要进行一些复杂的逻辑处理,则用SqlDataAdapter

所以二者何时使用得需要考虑实际情况,数据量大的时候尤为考虑!

若有误解的地方希望提出!

posted @ 2019-01-08 17:21  Leap李  阅读(1417)  评论(0编辑  收藏  举报