初探ADO.NET #2,DataReader 与 DataSet(资料集)

本文深入探讨ADO.NET中的DataReader与DataSet,两种关键数据处理方式。DataReader提供高效、单向、只读的数据流,适合展示大量数据;DataSet则作为离线数据库缓存,存放于内存,能处理复杂数据库关联及多表操作,消耗资源较多,适用于数据修改及分页功能。

初探ADO.NET #2,DataReader 与 DataSet(资料集)

http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/15/4919.aspx

 

 

以下是我的新书内容,仅供参考:

ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)

http://www.china-pub.com/46063 

2009/5/15上市

市场价 :¥59.80 RMB(人民幣)

 

ASP.NET案例精编--适用于VS2005/2008

   

============================================================

不过,自从 .NET 2.0版开始,多了一个数据来源控件(DataSource),例如:连结SQL Server就使用SqlDataSource,连结Access就可以用AccessDataSource等等。

 
图   Visual Studio提供的数据来源控件与其它数据细节控件。

这种数据来源控件只是一个「精灵」罢了,把上一篇文章提到的「四个步骤」包装起来,透过窗口的画面来完成,而不需要我们自己动手撰写程序代码,本书下一节就会介绍它。

数据来源控件(DataSource)的背后,还是ADO.NET。因此,要成为高手,ADO.NET一定要彻底熟悉。

 

6-1-4  DataReaderDataSet(资料集)


Connection、Command、DataReader和 DataAdapter对象表示 .NET Framework 数据提供者(DataProvider)模型的核心项目。下列表格说明这些对象。 

 

物件

说明

Connection

建立连接(联机)至特定数据来源(例如:数据库)。

Command

对数据来源执行命令,尤其是SQL指令。

DataReader

从数据来源读取「顺向」且「只读」的数据流

DataAdapter

(DataSet资料集)

将资料来源整个填入(.Fill()方法)到 DataSet

或是把 DataSet更新(.Update()方法)之后的数据,回传至数据来源。

 

ADO.NET有两大重点,分别是 DataReader与DataSet(数据集)这两种。跟旧版的ASP不同,当年的ADO都是使用 RecordSet(数据录集)。

关于ADO.NET的DataReader与DataSet,我们简单说明如下:

  •  DataReader---- 很类似以前ADO的RecordSet,但数据指针只能循序向前(Forward)无法后退,所以无法撰写「分页」的功能。优点是效率高、速度快,很适合用来作为单纯的工作,例如:展示大量资料。
  •  
  •  DataSet---- 一种离线运作的数据库快取,存放在主机的内存里面。DataSet是透过DataAdapter(数据配接器)来执行SQL指令,功能非常强大,几乎就 是数据库的翻版(如:DataView、DataTable、Relationship等等都作得到)。可以把数据库复制到主机的内存里面,如此一来面 对关系复杂的多重数据表,就能快速地处理。缺点是:使用DataSet比较消耗资源。

如果要修改数据的话,也是先修改DataSet(主机内存)里面的数据,然后再回写到数据库里面。
在ADO.NET里头,传统的分页功能都是用DataSet来完成。数据来源控件默认值都采用DataSet(如SqlDataSource预设的DataSourceMode = DataSet)。

 


把上述的观念,我们用表格来比较如下:

 

(资料来源,以MS SQL Server为例)

ADO.NET两大对象的比较

DataSet

DataReader

连接数据库(Connection

(不需要,因为SqlDataAdapter会自动开启连结,使用后自动关闭)

 

请看:[ADO.NET]DataSetDataAdapter,为何不需要自己写程序去开启数据库联机与关闭之?

SqlConnection.Open()

执行SQL指令

1. Select

2. Delete/Update/Insert

SqlDataAdapter

1.      .Fill()方法

2.      .Update()方法

SqlCommand

1.  .ExecuteReader()方法

2.  .ExecuteNonQuery()方法

数据指针

移动

DataSet类似数据库行为的数据快取。这些数据将存放在内存里面,所以可以自由灵活地操作内部资料。

读取数据时,只能「只读、顺向(Forward)」的动作。

如何处理数据库

资料表?

可以处理复杂的数据库关联与多个DataTable、DataView。

透过使用者自订的SQL指令来存取。

适合处理单一的数据表。

消耗资源

较大

小,而且快速

分页功能

Paging

资料整理:本书作者,MIS2000 Lab.

 

.NET技术里面,与我们最息息相关的核心技术就是ADO.NET。因此,本书后续有两大章节专门介绍ADO.NET。

 

初学者能稍微了解这些专有名词也就够了,后续的章节我们可以透过实作,来了解这些理论。从实作中学习,我们直接动手会让印象更深刻。

 

以 下是广告文 ----------------------------------------------------------------------------------------------------------------------------------

我的书上市了,烦请赏光、支持一下。   感恩~

ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)

http://www.china-pub.com/46063 

2009/5/15上市

市场价 :¥59.80 RMB(人民幣)

 

ASP.NET案例精编--适用于VS2005/2008

 

 

ADO.NET 共有下面文章:

 

转载于:https://www.cnblogs.com/mis2000lab/archive/2010/10/20/2008_08_15_4919_ADO_Net_2.html

多源数据接入 支持校园各业务系统数据接入:包括教务系统(学生成绩、课程信息)、学工系统(奖惩记录、资助信息)、后勤系统(宿舍分配、能耗数据)、图书馆系统(借阅记录、馆藏信息)、一卡通系统(消费数据、门禁记录)等。 接入方式:提供数据库直连(MySQL、SQL Server)、文件导入(CSV、Excel、JSON)、API 接口调用等多种方式,支持实时同步定时批量同步。 数据标准化治理 建立校园数据标准体系:统一数据格式(如日期格式、学号编码规则)、定义核心数据元(如 “学生” 包含学号、姓名、专业等必选字段)、规范代码集(如性别代码 “1 - 男,2 - 女”)。 数据清洗:自动检测并处理缺失值、重复值、异常值(如成绩 > 100 分),通过规则引擎实现数据校验(如 “学生年龄需在 16-30 岁之间”)。 元数据管理:记录数据来源、格式、更新频率、负责人等信息,生成数据血缘图谱,追踪数据从产生到应用的全生命周期。 二、数据共享交换核心功能 分布式数据存储 基于 Hadoop HDFS 实现海量数据存储:结构化数据(成绩、消费记录)存入 HBase,非结构化数据(文档、图片、视频)直接存储于 HDFS,日志类数据通过 Flume 采集至 HDFS。 支持数据分片副本机制,确保数据高可用(默认 3 副本存储),满足校园 PB 级数据存储需求。 数据交换引擎 构建点对点数据交换通道:各部门系统可通过交换引擎向平台上传数据或申请获取授权数据,支持同步 / 异步交换模式。 交换流程管理:定义数据交换规则(如 “学工系统每日向平台同步新增学生信息”),记录交换日志(成功 / 失败状态、数据量),失败时自动重试。 数据脱敏:对敏感数据(如身份证号、银行卡号)在交换过程中进行脱敏处理(如显示 “110********5678”),兼顾共享隐私保护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值