概述
ADO.NET 提供两个对象来处理从数据源中抽取的数据。它们是 DataSet 和 DataReader 对象。前者是记录在内存中的缓存,您可以从任何方向随意访问和修改。后者是高度优化的对象,专为以仅向前方式滚动只读记录而设计。请注意 DataSet 看起来象静态游标,但实际上,在 .NET 中与 ADO 只读游标相对应的是 DataReader 对象。DataSet提供内存中关系数据的表现--包括表和次序、约束等表间的关系的完整数据集合。DataReader提供快速、只向前、只读的来自数据库的数据流。
ADO.NET DataSet 专门为独立于任何数据源的数据访问而设计。因此,它可以用于多种不同的数据源,用于 XML 数据,或用于管理应用程序本地的数据。DataSet 包含一个或多个 DataTable 对象的集合,这些对象由数据行和数据列以及有关 DataTable 对象中数据的主键、外键、约束和关系信息组成。
下面对DataSet与DataReader做一个对比,在设计应用程序时,决定使用DataSet还是DataReader需要考虑应用程序需要的功能。
l 使用DataSet是为了实现应用程序的下述功能:
1. 操作结果中的多个分离的表。
2. 操作来自多个源(例如来自多个数据库、XML文件和电子表格的混合数据)的数据。
3. 在层之间交换数据或使用XML Web服务。与DataReader 不同,DataSet能被传递到远程客户端。
4. 通过缓冲重复使用相同的行集合以提高性能(例如排序、搜索或过滤数据)。
5. 每行执行大量的处理。在使用DataReader返回的行上进行扩展处理将使连接存在的时间比必要的更长,从而降低效率。
6. 使用XML操作(例如XSLT转换和Xpath查询)维护数据。
l 在应用程序需要以下功能时使用DataReader:
1. 不需要缓冲数据。
2. 正在处理的结果集太大而不能全部放入内存中。
3. 需要迅速一次性访问数据,采用只向前的只读的方式。
注意:当填充DataSet的时候,DataAdapter使用DataReader。因此使用DataAdapter代替DataSet获得的性能是节约了DataSet消耗的内存和组装DataSet所需要的周期。这种性能的提高大部分是有名无实的,因此你应该根据需要的功能为基础来做设计决定。
最后
以上就是任性滑板为你收集整理的对比DataSet 和 DataReader 对象的全部内容,希望文章能够帮你解决对比DataSet 和 DataReader 对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复