《 ASPNET数据库网站设计教程(C#版)》 配套教学资源 第8章使用 Dataset访问 数据库 本章内容: DataSet的基本构成,访问和填充 DataSet,修改 DataSet及数据更新 本章重点: DataSet的基本构成,常用子对象、属性和方法,使用 DataSet与 Data Adapter配合完成常规数据库操作。 圖王出妖社
第8章 使用DataSet访问 数据库 《ASP.NET数据库网站设计教程(C#版)》 配套教学资源 本章内容:DataSet的基本构成,访问和填充DataSet,修改DataSet及数据更新。 本章重点:DataSet的基本构成,常用子对象、属性和方法,使用DataSet与 DataAdapter配合完成常规数据库操作
81 DataSet的基本构成 ■可以把数据集理解为内存中的一个临时数据库,它把应用 程序需要的数据临时保存在内存中。由于这些数据都缓存 在本地计算机中,因此不需要与数据库服务器一直保持连 接。当应用程序需要数据时,直接从内存中的数据集中读 取数据;也可以修改数据集中的数据,然后把数据集中修 改后的数据写回数据库 811 DataSet、 DataAdapter和数据源之间的关系 数据集不直接与数据库联系,数据集与数据库之间的联系 是通过NE数据提供程序来实现的,因此数据集是独立于 任何数据库的
◼ 可以把数据集理解为内存中的一个临时数据库,它把应用 程序需要的数据临时保存在内存中。由于这些数据都缓存 在本地计算机中,因此不需要与数据库服务器一直保持连 接。当应用程序需要数据时,直接从内存中的数据集中读 取数据;也可以修改数据集中的数据,然后把数据集中修 改后的数据写回数据库。 ◼ 8.1.1 DataSet、DataAdapter和数据源之间的关系 ◼ 数据集不直接与数据库联系,数据集与数据库之间的联系 是通过.NET数据提供程序来实现的,因此数据集是独立于 任何数据库的。 8.1 DataSet的基本构成
Dataset是实现 ADO. NET断开式连接的核心,它通过 DataAdapter从数据源获得数据后就断开与数据源之间的连 接(这一点与前面介绍过的 Datareader对象完全不同) 此后应用程序所有对数据源的操作(定义约束和关系、添 加、删除、修改、査询、排序、统计等)均转向 Dataset 当所有这些操作完成后,可以通过 Data Adapter提供的数据 源更新方法将修改后的数据写入数据库。 图8-1表示了 Dataset、 DataAdapter和数据源之间的关系, 从图中可以看到 Dataset对象并没有直接连接数据源,它与 数据源之间的连接是通过 DataAdapter对象来完成的。 DataSet DataAdapter Connection 数据源 图8-1 DataSet、 DataAdapter和数据源之间的关系
◼ DataSet是实现ADO.NET断开式连接的核心,它通过 DataAdapter从数据源获得数据后就断开与数据源之间的连 接(这一点与前面介绍过的DataReader对象完全不同), 此后应用程序所有对数据源的操作(定义约束和关系、添 加、删除、修改、查询、排序、统计等)均转向DataSet。 当所有这些操作完成后,可以通过DataAdapter提供的数据 源更新方法将修改后的数据写入数据库。 ◼ 图8-1表示了DataSet、DataAdapter和数据源之间的关系, 从图中可以看到DataSet对象并没有直接连接数据源,它与 数据源之间的连接是通过DataAdapter对象来完成的
812 DataSet的组成结构和工作过程 1. Data Set的组成结构 ■数据集的结构与数据库的结构相似,数据集中也包含多个 数据表,这些表构成了一个数据表的集合( DatatableCollection),其中的每个数据表都是一个 Datatable对象。每个数据表都是由列组成的,所有列构成 了一个列集合( Data Column Collection),其中的列称为数 据列( DataColumn)。数据表中的数据记录是由行组成的 ,所有的行构成行集合( DataRowCollection),其中的行 称为数据行( Datarow)。 如图8-2所示, Dataset主要由 Datatablecollection(数据表 集合)、 DataRelation collection(数据关系集合)和 ExtendedProperties对象组成。其中最基本,也是最常用的 XEDataTable Collection
◼ 8.1.2 DataSet的组成结构和工作过程 ◼ 1.DataSet的组成结构 ◼ 数据集的结构与数据库的结构相似,数据集中也包含多个 数据表,这些表构成了一个数据表的集合( DataTableCollection),其中的每个数据表都是一个 DataTable对象。每个数据表都是由列组成的,所有列构成 了一个列集合(DataColumnCollection),其中的列称为数 据列(DataColumn)。数据表中的数据记录是由行组成的 ,所有的行构成行集合(DataRowCollection),其中的行 称为数据行(DataRow)。 ◼ 如图8-2所示,DataSet主要由DataTableCollection(数据表 集合)、DataRelationCollection(数据关系集合)和 ExtendedProperties对象组成。其中最基本,也是最常用的 是DataTableCollection
DataSet DataRelation collectio DataTablecollection ExtendedProperties DataTable DataColumn collection DataRowCollection DataColumn DataRow 图8-2 DataSet组成结构简图
813 Dataset中的常用子对象 在 Dataset内部是一个或多个 Datatable的集合。每个 Datatable由 Data Column、 Datarow和 Constraint(约束)的 集合以及 Datarelation的集合组成。 Datatable内部的 Datarelation集合对应于父关系和子关系,二者建立了 Datatable之间的连接。 Dataset由大量相关的数据结构组成,其中最常用的有5个 子对象,其名称及功能说明见表8-1 表8-1 DataSet的常用子对象及说明 对象 功能 DataTable 数据表,使用行、列形式来组织的一个矩形数据集 Data Column 数据列,一个规则的集合,描述决定将什么数据存储到一个 DataRow中 DataRow 数据行,由单行数据库数据构成的一个数据集合,该对象是实际的数据存储 Constraint 约束,决定能进入 DataTable的数据 DataRelation 数据表之间的关联,描述了不同的 DataTable之间如何关联
◼ 8.1.3 DataSet中的常用子对象 ◼ 在DataSet内部是一个或多个DataTable的集合。每个 DataTable由DataColumn、DataRow和Constraint(约束)的 集合以及DataRelation的集合组成。DataTable内部的 DataRelation集合对应于父关系和子关系,二者建立了 DataTable之间的连接。 ◼ DataSet由大量相关的数据结构组成,其中最常用的有5个 子对象,其名称及功能说明见表8-1
814 DataSet.对象常用属性和方法 1. DataSet对象的常用属性 Dataset对象的常用属性及说明见表8-2 表8-2 Data Set对象的常用属性及说明 名称 说明 DataSetName 获取或设置当前 DataSet的名称 Tables 获取包含在 Data Set中的表的集合
◼ 8.1.4 DataSet对象常用属性和方法 ◼ 1.DataSet对象的常用属性 ◼ DataSet对象的常用属性及说明见表8-2
2. Dataset对象的常用方法 ■ DataSet对象的常用方法,见表8-3 表8-3 Data Set对象的常用方法及说明 ccept Change提交自加载此Dtst或上次调用 Accept Changes来对其进行的所有更改 Clear 通过移除所有表中的所有行来清除任何数据的 DataSet 复制 DataSet的结构,包括所有 Datatable架构、关系和约束。不复制任何数据 Copy 复制该 DataSet的结构和数据 CreateDataReader0为每个 Data Table返回带有一个结果集的 DataTableReader,顺序与 Tables集合中表的显示顺序相同 HasChanges(0获取一个值,该值指示 DataSet是否有更改,包括新增的行、已删除的行或已修改的行 ergo 将指定的 DataSet、 Datatable或 DataRow对象的数组合并到当前的 DataSet或 DataTable中
◼ 2.DataSet对象的常用方法 ◼ DataSet对象的常用方法,见表8-3
82 DataAdapter对象 Data Adapter对象在物理数据库表和内存数据表(结果集) 之间起着桥梁的作用。它通常与 Datatable对象或 Datase对 象配合来实现对数据库的操作。关于 DataSet对象的概念及 使用方法将在后续章节中介绍,这里主要介绍 DataAdapter 对象与 Datatable对象配合使用的情况。 821创建 DataAdapter对象 ■下面以创建 SqlDataAdapter对象为例,介绍使用 Data Adapter 类的构造函数创建 Data Adapter对象的方法。常用的创建 SqlData Adapter对象的语法格式如下 SqlDataAdapter对象名= new SqlDataAdapter( sqlString, conn); 其中, sqlstring为 SELECT查询语句或 SqlCommand对象, con为 SqlConnection对象
◼ DataAdapter对象在物理数据库表和内存数据表(结果集) 之间起着桥梁的作用。它通常与DataTable对象或DataSet对 象配合来实现对数据库的操作。关于DataSet对象的概念及 使用方法将在后续章节中介绍,这里主要介绍DataAdapter 对象与DataTable对象配合使用的情况。 ◼ 8.2.1 创建DataAdapter对象 ◼ 下面以创建SqlDataAdapter对象为例,介绍使用DataAdapter 类的构造函数创建DataAdapter对象的方法。常用的创建 SqlDataAdapter对象的语法格式如下: ◼ SqlDataAdapter 对象名 = new SqlDataAdapter(sqlString, conn); ◼ 其中,sqlString为SELECT查询语句或SqlCommand对象, conn为SqlConnection对象。 8.2 DataAdapter对象
822 DataAdapter对象的属性和方法 Data Adapter对象的常用属性 DataAdapter对象的常用属性见表8-4。 表8-4 DataAdapter对象的常用属性及说明 Selectcommand 获取或设置一个语句或存储过程,用于在数据源中选择记录 sertcommand 获取或设置一个语句或存储过程,用于在数据源中插入新记录 Update Command 获取或设置一个语句或存储过程,用于更新数据源中的记录 DeleteCommand 获取或设置一个语句或存储过程,用于从数据源中删除记录 Update BatchSize 获取或设置每次到服务器的往返过程中处理的行数 MissingSchemaAction 确定现有 Data Set架构与传入数据不匹配时需要执行的操作
◼ 8.2.2 DataAdapter对象的属性和方法 ◼ 1.DataAdapter对象的常用属性 ◼ DataAdapter对象的常用属性见表8-4