4.5 Возможности класса DataSet
4. 5 Возможности класса DataSet
При работе с базами данных чаще всего таблицы используются не сам по себе, а во взаимодействии с другими таблицами. В ADO. NET возможности работы с наборами таблиц, связанными друг с другом, предоставляет класс DataSet.
Объект DataSet – это создаваемый в оперативной памяти набор таблиц (объектов DataTable ), связанных между собой отношениями и снабженными средствами проверки целостности данных (для них в DataSet предусмотрены свои объекты). Иерархия классов, входящих в DataSet, представлена на рисунке 2. 2.
Доступ производится через свойства Relations, Tables и ExtendedProperties соответственно
|
Рисунок 2. 2 – Внутренние коллекции DataSet
Основные свойства класса DataSet представлены в таблице 2. 7.
Таблица 2. 7 – Основные свойства класса DataSet
Свойство
| Описание
|
CaseSensitive
| Определяет, будет ли во время операций по сравнению текстовых строк в объектах DataTable учитываться регистр букв
|
DataSetName
| Позволяет получить или задать имя для данного объекта DataSet. Обычно значение этого свойства задается как параметр, передаваемый конструктору
|
EnforceConstraints
| Позволяет включить или отключить проверку соответствия ограничениям при выполнении операций обновления данных в DataSet
|
HasErrors
| Позволяет получить значение, определяющее наличие ошибок в DataSet (т. е. ошибок в любой строке любой таблицы DataSet)
|
Продолжение таблицы 2. 7
Свойство
| Описание
|
Relations
| Позволяет обратиться к коллекции отношений между таблицами DataSet
|
Tables
| Позволяет получить доступ к коллекции таблиц DataSet
|
Многие методы DataSet дублируют возможности свойств. Самые важные методы DataSet представлены в таблице 2. 8.
Таблица 2. 8 – Основные методы класса DataSet
Метод
| Описание
|
AcceptChanges()
| Позволяет сохранить в DataSet все изменения, произведенные с момента последнего вызова этого метода
|
Clear()
| Полная очистка DataSet – удаляются все строки из всех таблиц
|
Clone()
| Клонирует структуру DataSet, включая структуру таблиц, отношения между таблицами и ограничения
|
Copy()
| Копирует DataSet (структуру вместе с данными)
|
GetChanges()
| Возвращает копию DataSet, которая содержит все изменения, внесенные в оригинальный DataSet с момента последнего вызова для него метода AcceptChanges()
|
GetChildRelations()
| Возвращает коллекцию подчиненных отношений для указанной таблицы
|
GetParentRelations()
| Возвращает коллекцию родительских отношений для указанной таблицы
|
HasChanges()
| Этот перегруженный метод позволяет получить информацию об изменениях, внесенных в DataSet (отдельно по вставленным, удаленным и измененным строкам)
|
Merge()
| Этот перегруженный метод позволяет производить слияние разных объектов DataSet
|
ReadXml()
ReadXmlSchema()
| Позволяют считывать данные в формате XML в DataSet из потока (файла, оперативной памяти, сетевого ресурса)
|
RejectChanges()
| Отменяет все изменения, внесенные в DataSet с момента его создания или последнего вызова метода AcceptChanges()
|
WriteXml()
WriteXmlSchema()
| Позволяют записывать данные в формате XML из DataSet в поток
|
4. 6 Класс DataRelation
После того как в DataSet появилось несколько объектов таблиц, можно определить отношения между этими таблицами. Объектно-ориентированную оболочку вокруг отношений между таблицами представляет класс DataRelation. При создании объекта этого класса необходимо указать имя отношений, а также родительскую и подчиненную таблицы. Чтобы отношение было успешно установлено, в каждой из таблиц должен быть столбец с одинаковым названием и типом данных.
Объекты DataRelation хранятся в коллекции DataRelationCollection, поддерживаемой DataSet. В типе DataRelation предусмотрены свойства, которые позволяют получать ссылки на родительскую и подчиненную таблицу, участвующую в отношении, определять имя отношения и т. п. Наиболее часто используемые свойства представлены в таблице 2. 9.
Таблица 2. 9 – Основные свойства класса DataRelation
Свойство
| Описание
|
ChildColumns
ChildKeyConstraint
ChildTable
| Позволяют получить информацию о подчиненной таблице, участвующей в отношении, а также ссылку на саму эту таблицу
|
DataSet
| Позволяет получить ссылку на объект DataSet, к которому принадлежит данное отношение
|
ParentColumns
ParentKeyConstraint
ParentTable
| Позволяют получить информацию о родительской таблице, участвующей в отношении, а также ссылку на саму эту таблицу
|
RelationName
| Позволяет получить или задать имя для данного отношения
|
Перемещение между таблицами производится при помощи методов, определенных в классе DataRow. Так, метод GetChildRows() позволяет считывать строки из подчиненной таблицы, а метод GetParentRows() – из родительской таблицы.
Воспользуйтесь поиском по сайту: