Поделиться через


Класс System.Data.DataSet

В этой статье приводятся дополнительные замечания к справочной документации по этому API.

Класс DataSet , который является кэшем данных, извлеченных из источника данных, является основным компонентом архитектуры ADO.NET. DataSet состоит из коллекции объектов DataTable, которые можно связывать друг с другом при помощи объектов DataRelation. Вы также можете обеспечить целостность данных в DataSet, используя объекты UniqueConstraint и ForeignKeyConstraint. Дополнительные сведения о работе с DataSet объектами см. в разделе DataSets, DataTables и DataViews.

DataTable Тогда как объекты содержат данные, DataRelationCollection обеспечивает возможность перемещаться через иерархию таблиц. Таблицы содержатся в DataTableCollection, доступ к которым осуществляется через свойство Tables. При доступе DataTable к объектам обратите внимание, что они являются условными регистрами. Например, если один DataTable называется "mydatatable", а другой называется "Mydatatable", строка, используемая для поиска одной из таблиц, считается чувствительной к регистру. Однако если "mydatatable" существует, а "Mydatatable" не существует, строка поиска считается нечувствительной к регистру символов. Дополнительные сведения о работе с DataTable объектами см. в разделе "Создание dataTable".

DataSet может считывать и записывать данные и схемы в виде XML-документов. Затем данные и схему можно передавать по протоколу HTTP и использовать любым приложением на любой платформе с поддержкой XML. Схему можно сохранить как XML-схему с WriteXmlSchema помощью метода, а схему и данные можно сохранить с помощью WriteXml метода. Чтобы прочитать XML-документ, включающий схему и данные, используйте метод ReadXml.

В типичной реализации с несколькими уровнями шаги по созданию и обновлению DataSet, а затем обновлению исходных данных, следующие:

  1. Создание и заполнение каждого DataTableDataSet из них данными из источника данных с помощью .DataAdapter

  2. Изменение данных в отдельных DataTable объектах путем добавления, обновления или удаления DataRow объектов.

  3. Вызовите метод GetChanges, чтобы создать вторую DataSet, которая содержит только изменения данных.

  4. Update Вызовите метод методаDataAdapter, передаваемого вторым DataSet в качестве аргумента.

  5. Вызовите метод Merge, чтобы объединить изменения из второго DataSet в первый.

  6. Вызовите AcceptChanges на DataSet. Кроме того, вызовите RejectChanges для отмены изменений.

Замечание

Объекты DataSet и DataTable наследуются от MarshalByValueComponent и поддерживают интерфейс ISerializable для удаленного управления. Это единственные ADO.NET объекты, которые могут быть удалены.

Замечание

Классы, унаследованные от DataSet, не завершены сборщиком мусора, так как финализатор был подавлен в DataSet. Производный ReRegisterForFinalize класс может вызвать метод в конструкторе, чтобы разрешить завершению класса сборщиком мусора.

Вопросы безопасности

Сведения о безопасности DataSet и DataTable см. в руководстве по безопасности.