黑马程序员技术交流社区
标题:
datareader和dateset有什么区别?
[打印本页]
作者:
付茂炯
时间:
2012-3-4 14:48
标题:
datareader和dateset有什么区别?
本帖最后由 付茂炯 于 2012-3-4 20:58 编辑
datareader和dateset在使用中有什么区别?
作者:
邓坤
时间:
2012-3-4 19:18
datareader是用来读取数据库中的记录的,要通过sqlcommand来创建
dataset是一个数据集,它包含多个Table
二者有很大的区别,可以在网上查到的
作者:
张建康
时间:
2012-3-4 19:51
1:与数据库连接
DatSet 连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接。
Datareader 连接数据库时是面向连接的。读表时,只能向前读取,读完数据后有用户决定是否断开连接。
2: 处理数据速度
DataSet读取、处理速度较慢。
DataReader读取、处理速度较快。
3: 更新数据库
在对DataSet数据集中的数据进行更新后,可以把数据更新回原来的数据库。
在对DataReader中的数据进行更新后,没有办法进行数据库更新。
4: 支持分页排序
在DataSet中支持分页、动态排序等操作。
在DataReader中没有分页、动态排序的功能。
5 占用内存
DataSet在 IIS 服务器上所使用的内存较多。
DataSet在 IIS 服务器上所使用的内存较少。
作者:
莫洪刚
时间:
2012-3-4 22:30
SqlDataReader和DataSet不一样!
SqlDataReader是用来读取数据的,自己到服务端去读取,前提是连接为打开状态,不需要占用内存。
DataSet是数据集,一个数据集里面包含多个数据表DataTable,
我们可以使用SqlDataAdapter中的fill方法来填充数据集,得到我们真正想要的数据表,它是占用内存空间的!
就算连接断开,我们依然可以读取数据表中的内容,
而SqlDataReader只要数据库连接关闭,我们就不能读取数据了,当我们数据量大的时候我们一般采用向服务器读取数据,这样不占内存。
不知你是否可懂!
作者:
王长森
时间:
2012-3-5 13:05
我认为两者的区别在与SqlDataReader读取数据是在服务器断,假如网络断了,从而读取数据就失败了,而SqlDataReader 是真对数据量非常的大
而DataSet 他是返回一个数据集,加载到本地内存,这样很稳定,但要注意的是:数据少可以用这种方法,数据大了就会造成内存爆掉,根据需求来设计程序~这样更容易切和实际
作者:
林其响
时间:
2012-3-5 13:27
比如说在sqlDataReader是在System.Data.SqlClient 命名空间中 属于服务器端的
DataSet System.Data 命名空间中 一般在程序段运行的的 相当于本地的一个数据集
作者:
黑马王刚
时间:
2012-3-5 14:53
datareader是只读向前的,只能在连接对象未关闭之前使用,否则会引发异常。
dataset是将数据一次性加载在内存中,是离线版的。
datareader较dataset而言,效率高些
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2