6.7 非连接的数据概述

前面已经讲过,ADO.NET支持两种类型的对象,即基于连接的对象和基于内容的对象。

其中,基于连接的对象包括Connection、Command、DataReader和DataAdapter。它们连接到数据库,执行特定的SQL语句和存储过程,遍历结果集或者填充数据集((DtaSet)。这类对象主要针对具体数据源类型,可以在数据提供程序指定的命名空间中找到,如Oracle数据提供程序的System.Data.OracleClient命名空间。而基于内容的对象与基于连接的对象不一样,它们属于非连接的、断开的。它们完全和数据源独立,与具体的数据库无关,可以在System.Data命名空间中找到它们。

在这些非连接的数据对象中,DataSet是它们的核心。DataSet是专门为独立于任何数据源的数据访问而设计的。因此,它可以用于多种不同的数据源,用于XML数据,或用于管理应用程序本地的数据。DataSet包含一个或多个DataTable对象的集合,这些对象由数据行和数据列以及有关DataTable对象中数据的主键、外键、约束和关系信息组成,如图6-30所示。

figure_0230_0163

图 6-30 DataSet与DataTable

从图6-30可以看出,DataSet.Tables集合里的每个项目都是一个DataTable,而DataTable又包含自己的集合,如DataRow、DataColumn等。在本章余下的小节中,将重点阐述DataSet与这些非连接的数据对象在实际开发中的使用方法,主要包括如下四大对象:

1)DataTable:用于在内存中表示数据库表。

2)DataSet:用于在内存中表示数据库。

3)DataView:用于在内存中表示数据库视图。

4)DataAdapter:用于在物理存储模式的数据和内存之间进行数据传递。