ADO.NET基础必备之DataSet
DataSet 类
表示数据在内存中的缓存。
1, DataSet 是 ADO.NET 结构的主要组件,它是从数据源中检索到的数据在内存中的缓存。
2, DataSet 由一组 DataTable 对象组成,您可使这些对象与 DataRelation 对象互相关联。
3, DataSet 可将数据和架构作为 XML 文档进行读写。数据和架构可通过 HTTP 传输,并在支持 XML 的任何平台上被任何应用程序使用。可使用 WriteXmlSchema 方法将架构保存为 XML 架构,并且可以使用 WriteXml 方法保存架构和数据。若要读取既包含架构也包含数据的 XML 文档,请使用 ReadXml 方法。
4, 在典型的多层实现中,用于创建和刷新 DataSet 并依次更新原始数据的步骤包括:
1. 通过 DataAdapter 使用数据源中的数据生成和填充 DataSet 中的每个 DataTable。
2.通过添加、更新或删除 DataRow 对象更改单个 DataTable 对象中的数据。
3.调用 GetChanges 方法以创建只反映对数据进行的更改的第二个 DataSet。
4.调用 DataAdapter 的 Update 方法,并将第二个 DataSet 作为参数传递。
5调用 Merge 方法将第二个 DataSet 中的更改合并到第一个中。
6针对 DataSet 调用 AcceptChanges。或者,调用 RejectChanges 以取消更改。
DataTable 类
表示内存中数据的一个表。
――若要向 DataTable 中添加行,必须先使用 NewRow 方法返回新的 DataRow 对象。
DataColumn 类
表示 DataTable 中列的架构。
--DataColumn 是用于创建 DataTable 的架构的基本构造块。通过向 DataColumnCollection 中添加一个或多个 DataColumn 对象来生成这个架构。
――每个 DataColumn 都有 DataType 属性,该属性确定 DataColumn 所包含的数据的种类。例如,可以将数据类型限制为整数、字符串或小数。由于 DataTable 所包含的数据通常合并回其原始数据源,因此必须使其数据类型与数据源中的数据类型匹配。
DataRow 类
表示 DataTable 中的一行数据。
――DataRow 和 DataColumn 对象是 DataTable 的主要组件。
――使用 DataRow 对象及其属性和方法检索、评估、插入、删除和更新 DataTable 中的值。
――若要创建新的 DataRow,请使用 DataTable 对象的 NewRow 方法。
――创建新的 DataRow 之后,请使用 Add 方法将新的 DataRow 添加到 DataRowCollection 中。
――调用 DataTable 对象的 AcceptChanges 方法以确认是否已添加。
――可通过调用 DataRowCollection 的 Remove 方法或调用 DataRow 对象的 Delete 方法,从 DataRowCollection 中删除 DataRow。
DataRowCollection 类
表示 DataTable 的行的集合。
――DataRowCollection 是 DataTable 的主要组件。
――当 DataColumnCollection 定义表的架构时,DataRowCollection 中包含表的实际数据,在该表中,DataRowCollection 中的每个 DataRow 表示单行。
――可通过调用 Add 和 Remove 方法,从 DataRowCollection 中插入和删除 DataRow 对象。
――还可通过调用 Find 方法搜索在主键列中包含特定值的 DataRow 对象,也可通过调用 Contains 方法在基于字符的数据中搜索单个单词或词组。
DataColumnCollection 类
表示 DataTable 的 DataColumn 对象的集合。
――DataColumnCollection 定义 DataTable 的架构,并确定每个 DataColumn 可以包含什么种类的数据。
――可以通过 DataTable 对象的 Columns 属性访问 DataColumnCollection。
――DataColumnCollection 使用 Add 和 Remove 方法插入和删除 DataColumn 对象。
――使用 Count 属性确定集合中有多少 DataColumn 对象。
――使用 Contains 方法验证集合中是否存在指定索引或列名称。
DataTable.NewRow 方法
建与该表具有相同架构的新 DataRow。
――返回值
类型:System.Data.DataRow
返回DataRow,其架构与 DataTable 的架构相同。
――备注
-必须使用 NewRow 方法才能创建与 DataTable 具有相同架构的新 DataRow 对象。
-在创建 DataRow 之后,可以通过 DataTable 对象的 Rows 属性将其添加到 DataRowCollection 中。
-使用 NewRow 创建新行时,必须先对这些行进行处理,然后再调用 Clear。
DataTable.Rows 属性
获取属于该表的行的集合。
――若要创建新的 DataRow,必须使用 NewRow 方法返回新对象。这样的对象将按照架构自动配置,该架构是通过 DataColumn 对象的集合为 DataTable 定义的。
――在创建新行并为该行中每个列设置值之后,使用 Add 方法将该行添加到 DataRowCollection 中。
――集合中的每个 DataRow 表示表中的一行数据。若要提交对行中某一列的值的更改,必须调用 AcceptChanges 方法。
DataTable.Clear 方法
清除所有数据的 DataTable。
――所有表中的所有行都被移除。如果表中有任何将使子行孤立的强制子关系,则生成异常。
――如果 DataSet 绑定到 XmlDataDocument,则调用 DataSet..::.Clear 或 DataTable..::.Clear 将引发 NotSupportedException。为避免这种情况,请遍历每个表,逐个移除每一行。使用 NewRow 创建新行时,必须先对这些行进行处理,然后再调用 Clear。