System.Data.DataSet 类

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

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

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

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

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

  1. 使用 DataAdapterDataSet/a0> 生成并填充DataTable数据源中的数据。

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

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

  4. Update调用该方法DataAdapter,将第二DataSet个作为参数传递。

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

  6. 调用 on AcceptChangesDataSet 或者,调用 RejectChanges 以取消更改。

注意

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

注意

从中继承的DataSet类不是由垃圾回收器完成的,因为终结器已被禁止。DataSet 派生类可以调用 ReRegisterForFinalize 其构造函数中的方法,以允许垃圾回收器完成该类。

安全注意事项

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