C#中DataAdapter与DataReader的区别和联系(转载)

转载 2008年09月29日 22:43:00
ADO.NET提供以下两个对象,用于检索关系数据并将其存储在内存中:DataSetDataReader。DataSet提供一个内存中数据的关系表示形式,一整套包括一些表在内的数据(这些表包含数据、对数据进行排序并约束数据),以及表之间的关系。DataReader提供一个来自数据库的快速、仅向前、只读数据流。
当使用DataSet时,经常会利用DataAdapter(也可能是CommandBuilder)与数据源进行交互。当使用DataSet时,也可以利用DataView对DataSet中的数据应用排序筛选。也可以从DataSet继承,创建强类型DataSet,用于将表、行列作为强类型对象属性公开。
当设计应用程序时,要考虑应用程序所需功能的等级,以确定使用DataSet或者是DataReader。
要通过应用程序执行以下操作,就要使用DataSet
r 在结果的多个离散表之间进行导航。
r 操作来自多个数据源(例如,来自多个数据库、一个XML文件一个电子表格的混合数据)的数据。
r 在各层之间交换数据或使用XML Web服务。与DataReader不同的是,DataSet能传递给远程客户端。
r 重用同样的记录集合,以便通过缓存获得性能改善(例如排序、搜索或筛选数据)。
r 每条记录都需要执行大量处理。对使用DataReader返回的每一行进行扩展处理会延长服务于DataReader的连接的必要时间,这影响了性能。
r 使用XML操作对数据进行操作,例如可扩展样式表语言转换(XSLT转换)或XPath查询。

对于下列情况,要在应用程序中使用DataReader:
r 不需要缓存数据。
r 要处理的结果集太大,内存中放不下。
r 一旦需要以仅向前、只读方式快速访问数据。
注填充DataSet时,DataAdapter使用DataReader。因此,使用DataAdapter取代DataSet提升的性能表现为节省了DataSet占用内存填充DataSet需要的循环。一般来说,此性能提升只是象征性的,因此,设计决策应以所需功能为基础。

DataReader和DataAdapter的一些比较

开发时没有很好的了解这块,都是使用Fill模式。 使得数据量变大后,系统开始变慢了! 于是重新温故了解这方面的东东,希望会对大家有用 SqlDataReader是个数据读取器,向前不可后退、每次只读取...
  • daone
  • daone
  • 2010年07月30日 13:32
  • 2978

DataSet,DataTable,DataReader,DataAdapter 区别

简介: DataSet:表示一个数据集,是数据在内存中的缓存,可以包括多个表。         DataSet.Table(“表名”).Rows(行号)(“字段名”)   DataTable:...
  • X_X_OO
  • X_X_OO
  • 2016年09月13日 20:11
  • 346

DataSet 与DataAdapter的区别

DataSet 与DataAdapter的区别:DataReader 对象只能实现对数据的读取,不能完成其他的操作。ADO.NET提供一款更强大的数据操作对象――DataSet 可以将DataSet看...
  • lanpy88
  • lanpy88
  • 2009年12月17日 14:06
  • 3997

DataReader和DataAdapter区分

DataReader是只读向前的,那么后面想检索其中的数据,是不可能的,只能再次DataReader。使用DataReader的好处当然是速度快。而使用DataAdapter 填充DataSet,是完...
  • winbobob
  • winbobob
  • 2014年04月10日 14:05
  • 619

笔记:为什么只使用DataReader(DataReader和Dataset的性能比较)?

【技术要点】1、每次Read()方法从数据库中取出一条数据,然后丢弃;然后取出下一条数据2、它需要保持当前的活动连接3、它总是顺序读取【和Dataset的性能差距】DataReader是后者速度的近3...
  • nileel
  • nileel
  • 2007年06月05日 17:15
  • 2386

DataSeDataSet与DataReader的区别

DataSet与DataReader的区别DataReader和DataSet最大的区别在于,DataReader使用时始终占用SqlConnection,在线操作数据库..任何对SqlConnect...
  • wmh7064
  • wmh7064
  • 2006年03月10日 16:43
  • 548

dataset和datareader的区别

一、DataSet基本介绍 Dataset表示一个数据集,是数据在内存中的缓存。 即是:DataSet是内存(关系型)数据库,它可以包括多个表以及表之间的相互关系,还有过滤查询等等。DataSe...
  • yuanyuanispeak
  • yuanyuanispeak
  • 2016年02月25日 14:40
  • 1287

浅谈ADO.NET中的对象——Connection、Command、DataReader、DataAdapter、DataSet、DataTable

SqlDataReader通常和SqlCommand一同使用,常用语简单浏览并且耗时较短的数据库操作。 DataSet长与SqlDataAdapter一同使用,DataSet会将所需数据...
  • huyuyang6688
  • huyuyang6688
  • 2014年09月23日 11:45
  • 3648

ADO.NET技术简介(一) Connection、Command、DataReader、DataAdapter、DataSet和DataTable

摘自《C#编程宝典》 ADO.NET技术主要包括Connection、Command、DataReader、DataAdapter、DataSet和DataTable等6个对象,下面对这6个对象进行简...
  • vvhesj
  • vvhesj
  • 2014年02月08日 14:40
  • 1783

DataReader和DataAdapter的区别

转自:http://blog.sina.com.cn/s/blog_7bb5e6b70101ay5v.html DataReader是一个向前的指针,本身并不包含数据,调用一次Read()方法它就向...
  • u010178308
  • u010178308
  • 2017年08月13日 06:33
  • 81
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#中DataAdapter与DataReader的区别和联系(转载)
举报原因:
原因补充:

(最多只允许输入30个字)