黑马程序员技术交流社区

标题: 数据库中的DataSet、DataReader怎么用啊?有什么区别啊? [打印本页]

作者: 职业规划-蔡红微老师    时间: 2012-4-9 12:42
标题: 数据库中的DataSet、DataReader怎么用啊?有什么区别啊?
数据库中的DataSet、DataReader怎么用啊?有什么区别啊?
作者: 柏云杉    时间: 2012-4-9 13:01
貌似有人问过这个问题
DataReader是即时读取服务器数据,但并没有将数据保存到本地。一旦关闭就读取不到数据。
DataSet是保存服务器数据到本地的,本身没有对服务器读取数据。
作者: 翁金鹏    时间: 2012-4-9 13:02
DataReader一般用于大数据读取的时候用的(节约本地内存)
DataSet 一般小数据读取(只要与服务器链接一次,之后数据都写到内存,服务断开,数据照样访问)
作者: 黄雄斌    时间: 2012-4-9 14:11
使用DataReader与DataSet都可以从数据源读取数据。DataReader本身是通过IDbCommand.ExecuteReader()方法进行构建的;而DataSet则是通过DbDataAdapter.Fill()方法进行填充。此外,两者的工作方式有明显的不同:DataReader的执行过程不能脱离数据库连接,也就是在DataReader读取数据的时候不能够使用IDbConnection.Close()方法关闭数据库连接;而在使用DataSet获取数据时,可以断开数据库的连接(具体请参加微软提供的相关的演示文档),因为此时DbDataAdapter已经负责将数据获取到应用服务器中了。

由于有这样的区别,所以在开发数据库相关程序时需要特别注意。例如在使用DataReader获取数据后,应该主动地关闭数据库连接,否则可能出现数据库连接池溢出的异常.

作者: 崔楠    时间: 2012-4-12 13:57
DataReader是只能向前的只读游标,dataset一个是内存中的表。DataSet可以离线处理,前后滚动.DataReader不能离线处理,且是只读的向前的,不过速度明显会很快 DataSet可以存储数据库各种对象的,比如表触发器等,而DataReader只能存储游标记录
DataSet可以更新回原来的数据库,DataReader不行
作者: pray    时间: 2014-4-26 07:51
我在顶贴~!~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2