System.Data.DataSet 类

本文提供了此 API 参考文档的补充说明。

DataSet 类是从数据源检索到的数据的内存中缓存,是 ADO.NET 体系结构的主要组成部分。 DataSet 由一组 DataTable 对象组成,你可以通过 DataRelation 对象将它们彼此关联。 您还可以在DataSet中通过使用UniqueConstraintForeignKeyConstraint对象来实施数据完整性。 有关使用 DataSet 对象的更多详细信息,请参阅 DataSets、DataTables 和 DataViews

DataTable 对象包含数据, DataRelationCollection 则允许你通过表层次结构进行导航。 表格包含在 DataTableCollection 中,并通过 Tables 属性访问。 访问 DataTable 对象时,请注意它们是有条件的区分大小写的。 例如,如果一个 DataTable 名为“mydatatable”,另一个名为“Mydatatable”,则用于搜索其中一个表的字符串被认为区分大小写。 但是,如果“mydatatable”存在且“Mydatatable”不存在,则搜索字符串被视为不区分大小写。 有关使用 DataTable 对象的详细信息,请参阅 创建 DataTable

DataSet 可以以 XML 文档的形式读取和写入数据和模式。 然后,可以在启用 XML 的任何平台上跨 HTTP 传输数据和架构,并由任何应用程序使用。 可以使用该方法将架构另存为 XML 架构 WriteXmlSchema ,并且可以使用该方法保存 WriteXml 架构和数据。 若要读取包含架构和数据的 XML 文档,请使用 ReadXml 该方法。

在典型的多层实现中,创建和刷新原始 DataSet数据的步骤依次是:

  1. 使用 DataTable 构建 DataSet 中的每个 DataAdapter,并用来自数据源的数据对其进行填充。

  2. 通过添加、更新或删除DataTable对象来更改各个DataRow对象中的数据。

  3. 调用 GetChanges 方法以创建仅包含对数据的更改的第二个 DataSet

  4. 调用 UpdateDataAdapter 方法,并将第二个 DataSet 作为参数传递。

  5. 调用Merge方法,将第二个DataSet中的更改合并到第一个中。

  6. AcceptChanges上调用DataSet 或者,调用 RejectChanges 以取消更改。

注释

DataSetDataTable对象继承自MarshalByValueComponent,并支持用于远程处理的ISerializable接口。 这些是唯一可以远程处理的 ADO.NET 对象。

注释

垃圾收集器不会最终确定从 DataSet 中继承的类,因为已经在 DataSet 中抑制了终结器。 派生类可以调用 ReRegisterForFinalize 其构造函数中的方法,以允许垃圾回收器完成该类。

安全注意事项

有关 DataSet 和 DataTable 安全性的信息,请参阅 安全指南