初探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(人民幣)
============================================================
不过,自从 .NET 2.0版开始,多了一个数据来源控件(DataSource),例如:连结SQL Server就使用SqlDataSource,连结Access就可以用AccessDataSource等等。
图 Visual Studio提供的数据来源控件与其它数据细节控件。
这种数据来源控件只是一个「精灵」罢了,把上一篇文章提到的「四个步骤」包装起来,透过窗口的画面来完成,而不需要我们自己动手撰写程序代码,本书下一节就会介绍它。
数据来源控件(DataSource)的背后,还是ADO.NET。因此,要成为高手,ADO.NET一定要彻底熟悉。
6-1-4 DataReader与DataSet(资料集)
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会自动开启连结,使用后自动关闭)
|
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(人民幣)
ADO.NET 共有下面文章:
- 初探ADO.NET #1,程序与数据库互动的四大步骤 (2010-10-20 08:55)
- 初探ADO.NET #2,DataReader 与 DataSet(资料集) (2010-10-20 08:58)
- ADO.NET #3 (GridView + SqlDataSource)完全手写、后置程序代码,兼论 SqlDataSource与UpdateParameter/DeleteParameter的用法 (2010-10-22 10:04)(难度很高,初学者请略过)
- ADO.NET #4,自己设定输入画面,让SqlDataSource帮我们完成「新增」一笔数据 (2010-10-22 13:55)
- ADO.NET #5,自己设定画面,让SqlDataSource帮我们捞(呈现)数据 (2010-10-22 14:08)
- [习题]ADO.NET #6, DataSet如何新增一笔数据?
- [习题]ADO.NET #7,避免相同数据 重复输入(重复新增)
- [习题]ADO.NET #8,文章(产品)的浏览次数 / 点阅数 / 点击次数,怎么作?
- ......文章 仍在增加中......
....................................................................................................寄信给我 mis2000lab (at)雅虎.com.台湾 ........
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)