datareader和dataset的异同7
发布网友
发布时间:2024-01-21 16:28
我来回答
共1个回答
热心网友
时间:2024-02-25 02:29
ADO.NET2.0提供了两个用于检索关系数据的对象:DataSet和DataReader。并且这两个对象都可以将检索的关系数据存储在内存中。在软件开发过程中经常用到这两个控件,由于这两个控件在使用和功能方面的相似,很多程序员错误地认为DataSet和DataReader是可以相互替代的。这种想法是错误的,在这我们分析一下DataSet控件和DataReader控件的区别。
■与数据库连接
DatSet 连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接。
Datareader 连接数据库时是面向连接的。读表时,只能向前读取,读完数据后有用户决定是否断开连接。
■ 处理数据速度
DataSet读取、处理速度较慢。
DataReader读取、处理速度较快。
■ 更新数据库
在对DataSet数据集中的数据进行更新后,可以把数据更新回原来的数据库。
在对DataReader中的数据进行更新后,没有办法进行数据库更新。
■ 支持分页排序
在DataSet中支持分页、动态排序等操作。
在DataReader中没有分页、动态排序的功能。
■ 占用内存
DataSet在 IIS 服务器上所使用的内存较多。
DataReader在 IIS 服务器上所使用的内存较少。
综上所述得出DataSet和DataReader有各自适用的场合。如果数据来源控件只是用来填入控件的清单成为其选项,或者数据绑定控件并不需要提供排序或分页功能的话,则应该使用 DataReader。反之,如果数据绑定控件需要提供排序或分页功能的话,则必须使用 DataSet,通过DataSet设置出来分页排序等页面面显示效果。
datareader和dataset的异同
DataReader与DataSet最根本的区别就在于一个是在线处理,另一个是离线处理。在线时,得到的是数据库当前的真实数据,但总是在线的话,增加了网络的通讯负担。离线后数据拷贝在本地,可以减轻网络负担,程序处理数据更加方便,若离线时间过长,看到的数据就不一定是真实的数据了。补充经验:大数据量上使用Dat...
DATASET 和 DATAREADER区别
可以将DataSet看作一个离线的数据库,将数据库中的数据在内存中作映射。当你有很多客户端来访问同样的数据时,你可以让这些客户端从DataSet中读取数据。DataReader操作时,需要将Connection对象打开,与数据库保持连接,它与DataSet相反过来,它还的特点就是只读向前,所以当你读取很量数据时,可以使用DataRe...
dataset和datareader哪个更快
DataReader。DataReader读取速度快于DataSet。DataReader是数据提供者类,DataSet是一般性类,借助于DataAdapter来填充数据。DataSet是离线操作数据,在事务中使用时要注意,DataSet填充数据后会断开连接,也就会释放锁。
C#之 DataReader 和 DataSet 的区别
DataReader比DataSet占用内存特别小。DataSet容易产生大对象,对性能影响比较大。DataReader是在线读取数据需要自己关闭连接,并且高并发访问时要考虑数据库连接池是否够用的问题(一般只有在读取数千条数据持续占用数据库连接,并且并发访问量大的时候才会考虑这个问题)。四、DataReader 使用关注点 当你...
SqlDataRead和Dataset的区别
Dataset是把数据读出,缓存在内存中。缺点:对内存的占用较高。如果对返回的数据需做大量的处理用Dataset比较好些可以减少对数据库的连接操作。优点:只需连接一次就可close于数据库的连接 一般情况下,读取大量数据,对返回数据不做大量处理用SqlDataReader.对返回数据大量处理用datset比较合适.对SqlData...
C#中IDataReader和DataSet的区别是什么呢?
用connection对象和command对象与数据库连接并交互后,有两种方法来访问获取的结果。1.使用DataReader对象,用来逐行从数据源获取数据并处理;2.使用DataSet对象,用来将数据存到内存中进行处理。
C#之 DataReader 和 DataSet 的区别
但DataAdapter却是数据联系的一种桥梁,可以把DataSet中的数据通过Adapter更新到数据库中。虽然Adapter在读取时性能不高,但他可以建立DataSet与数据库之间的联系,从而实现DataSet中的更新。在不同的情况下,选用不同的数据方式。有关DataReader与DataAdapter之间的区别,你可以了到msdn上了解更多。
c# DataReader和用DataAdapter来填充DataSet 两者的效率的区别有多大...
DataSet效率高.因为DataReader是在线读取,也就是说在DataReader 读取数据期间,客户端和数据库之间始终保持一个连接,一次只读一条数据;而DataSet从数据库中读取一堆数据 到 客户端后就可以断开和数据库的连接了.用 DataReader 会使数据库服务器的压力增大,会降低数据库服务器效率. (并发率高的情况下)...
用SqlDataReader和SqlDataAdapter读取数据有啥区别?
这个是这样的,SqlDataReader只能用于读,在读的过程中数据库一直保持打开状态,不过读的效率还是可以的 SqlDataAdapter(数据适配器)、DataSet 先将数据取出来放到dataset中,然后就可以关闭数据库了,通过sqldataadapter还可以更新删除数据库中的东西,功能很强大,要好好学习。像绑定某些数据源之类的话强烈...
ASP.NET如何进行性能优化问题
Dataset是把数据读出 缓存在内存中 缺点 对内存的占用较高 如果对返回的数据需做大量的处理用Dataset比较好些可以减少对数据库的连接操作 优点 只需连接一次就可close于数据库的连接 *一般情况下 读取大量数据 对返回数据不做大量处理用SqlDataReader 对返回数据大量处理用datset比较合适 对SqlDataReader和Dataset的选...