C#中SqlDataReader与SqlDataAdapter获取数据集有何区别
之前一直有个误区,认为SqlDataAdapter不仅占内存,还没有SqlDataReader读取快,所以优选SqlDataReader。但是昨天与主管有意见上的争议,总觉得没弄明白不太甘心。
然后就研究了一番,首先了解二者的原理:
1.SqlDataReader提供一种从数据库读取行的只进流,
SqlDataAdapter执行数据命令和数据连接,获取表数据填充到DataSet或DataTable中
2.使用SqlDataReader循环读取,直到完全读取完才断开数据库连接;而SqlDataAdapter执行命令后就断开了
***若获取数据后需要进行非DataSet或DataTable类型转换,并且数据量大的情况下,优选SqlDataReader,因为类型转换也是耗时的,数据量 越大越明显
***若获取到数据,不需要进行一些复杂的逻辑处理,则用SqlDataAdapter
所以二者何时使用得需要考虑实际情况,数据量大的时候尤为考虑!
若有误解的地方希望提出!