用DataReader还是DataSet,他们之间的区别和适用场合
2011-04-13 23:54
351 查看
网上收集了一下,用DataReader还是DataSet,下面的答案讲的很清楚
使用DataReader与DataSet都可以从数据源读取数据。DataReader本身是通过 IDbCommand.ExecuteReader()方法进行构建的;而DataSet则是通过DbDataAdapter.Fill()方法进行填充。此外,两者的工作方式有明显的不同:DataReader的执行过程不能脱离数据库连接,也就是在DataReader读取数据的时候不能够使用 IDbConnection.Close()方法关闭数据库连接;而在使用DataSet获取数据时,可以断开数据库的连接,因为此时 DbDataAdapter已经负责将数据获取到应用服务器中了。
如果数据量小,网站也小,那么用哪个都无所谓,访问频繁的话就需要使用DataSet了,因为有一个连接的问题.
在网络运用中:
reader必须是在Connection下在状态才能用的,所以组件返回以DataSet为好.
这就是为什么web service充许返回dataset而不是datareader
reader会霸占连接资源,所以不是很方便的。dataset是非连接的数据库访问机制.
测试结果时DataSet要比DataReader慢一些的,差好几倍,但易用度来讲还是DataSet好一些.
二者适用的环境不一样,这要看你数据绑定的目的而定:
如果是为了单纯地显示给客户端浏览,或者只是为了在程序中对某些条件进行判断以决定程序的执行流程,那用DataReader就比较好;
如果需要对显示结果进行编辑或修改,并提交到后台数据库已保存这些改变,那就应该毫不犹豫地选择DataSet。
另外,如果dataset读取数据的过程需要连接,则可以重新进行绑定,绑定的条件可以依据客户端的选择或者根据PageIndex类似的属性一绑定,你实际需要的数据而不是整个数据表。
我个人感觉,都是向着精确化的方向发展,BT的传送文件方式,数据的小片读取,大图片文件部分读取传输技术,ajax只传送网页中需要传送的数据和接收需要接收的数据等等都是精确化的表现!
使用DataReader与DataSet都可以从数据源读取数据。DataReader本身是通过 IDbCommand.ExecuteReader()方法进行构建的;而DataSet则是通过DbDataAdapter.Fill()方法进行填充。此外,两者的工作方式有明显的不同:DataReader的执行过程不能脱离数据库连接,也就是在DataReader读取数据的时候不能够使用 IDbConnection.Close()方法关闭数据库连接;而在使用DataSet获取数据时,可以断开数据库的连接,因为此时 DbDataAdapter已经负责将数据获取到应用服务器中了。
如果数据量小,网站也小,那么用哪个都无所谓,访问频繁的话就需要使用DataSet了,因为有一个连接的问题.
在网络运用中:
reader必须是在Connection下在状态才能用的,所以组件返回以DataSet为好.
这就是为什么web service充许返回dataset而不是datareader
reader会霸占连接资源,所以不是很方便的。dataset是非连接的数据库访问机制.
测试结果时DataSet要比DataReader慢一些的,差好几倍,但易用度来讲还是DataSet好一些.
二者适用的环境不一样,这要看你数据绑定的目的而定:
如果是为了单纯地显示给客户端浏览,或者只是为了在程序中对某些条件进行判断以决定程序的执行流程,那用DataReader就比较好;
如果需要对显示结果进行编辑或修改,并提交到后台数据库已保存这些改变,那就应该毫不犹豫地选择DataSet。
另外,如果dataset读取数据的过程需要连接,则可以重新进行绑定,绑定的条件可以依据客户端的选择或者根据PageIndex类似的属性一绑定,你实际需要的数据而不是整个数据表。
我个人感觉,都是向着精确化的方向发展,BT的传送文件方式,数据的小片读取,大图片文件部分读取传输技术,ajax只传送网页中需要传送的数据和接收需要接收的数据等等都是精确化的表现!
相关文章推荐
- 字符串判空的几种方式以及他们之间的区别
- DataReader和DataSet的区别
- 基础知识系列☞DataReader和DataSet区别
- DATASET 与 DATAREADER对象有什么区别
- C# 中 Struct 与 Class 的区别,以及两者的适用场合
- 选择DataSet还是DataReader
- Ruby on Rails,使用new和create创建ActiveRecord对象及他们之间的区别
- 数据绑定用DataReader还是用DataSet?
- C# 中 Struct 与 Class 的区别,以及两者的适用场合
- C# 之 DataReader 和 DataSet 的区别
- 用DataReader还是DataSet?
- datareader和dataset区别
- DataReader和DataSet的区别
- dataset和datareader的区别
- DataReader和DataSet的区别
- DataReader还是DataSet
- 内存泄露和内存溢出是什么?他们之间的区别是什么?
- DataReader与DataSet有什么区别?
- DataSet,DataTable,DataReader,DataAdapter区别(搞笑版)
- PCI、PCI-x,PCI-E兼容以及他们之间的区别详细图解