这两个类都可以用来从数据库中读数据,但是它们有比较大的不同。
SqlDataReader是与连接相关的,一旦连接断开,就不能继续读取数据。SqlDataReader中的查询结果并不是放在程序中的,而是放在数据库服务器中的,SqlDataReader只是相当于放了一个指针(游标),只能读取当前游标指向的行。这样做的好处是,无论查询结果有多少条,对程序占用的内存几乎没有任何影响。
SqlDataReader对于小数据量的数据来说带来的只有麻烦,有点几乎可以忽略不计。
ADO.net中提供了数据集的机制,将查询结果填充到本地的内存中,这样即使服务器断开,丝毫不影响数据的读取。
未完待续·······