Структура класса DataSet
База данных характеризуется множеством таблиц и множеством отношений между таблицами.
DataSet (как объявление класса) включает:
- набор (возможно, что пустой) объявлений классов DataTable (фактически это описание структуры составляющих данный КЛАСС DataSet таблиц),
- набор объявлений классов DataRelations, который обеспечивает установку связей между разными таблицами в рамках данного DataSet.
Структура DataSet может в точности повторять структуру БД и содержать полный перечень таблиц и отношений, а может быть частичной копией БД и содержать, соответственно, лишь подмножество таблиц и подмножество отношений. Все определяется решаемой с помощью данного DataSet задачей.
При всем этом следует иметь в виду, что DataSet, структура которого полностью соответствует структуре БД (ИДЕАЛЬНАЯ DataSet), никогда не помешает решению поставленной задачи. Даже если будет содержать излишнюю информацию.
Процесс объявления (построения) класса DataSet, который ПОДОБЕН структуре некоторой базы данных, является достаточно сложным и трудоемким. Класс – структурная копия БД содержит множество стандартных и трудных для ручного воспроизведения объявлений. Как правило, его объявление строится с использованием специальных средств-волшебников, которые позволяют оптимизировать и ускорять процесс воспроизведения структуры БД средствами языка программирования. В конечном счете появляется все то же объявление класса, над которым также можно медитировать и (осторожно!) изменять его структуру.
Объект – представитель данного класса DataSet обеспечивает представление в памяти компьютера фрагмента данной БД. Этот объект является локальным представлением (фрагмента) БД.
Члены класса DataSet представлены ниже.
DataSet-конструктор | Перегружен. Инициализирует новый экземпляр класса DataSet |
CaseSensitive | Возвращает или задает значение, определяющее, учитывается ли регистр при сравнении строк в объектах DataTable |
Container (унаследовано от MarshalByValueComponent) | Получает контейнер для компонента |
DataSetName | Возвращает или задает имя текущего DataSet |
DefaultViewManager | Возвращает новое представление данных класса DataSet для осуществления фильтрации, поиска или перехода с помощью настраиваемого класса DataViewManager |
DesignMode (унаследовано от MarshalByValueComponent) | Получает значение, указывающее, находится ли компонент в настоящий момент в режиме разработки |
EnforceConstraints | Возвращает или задает значение, определяющее соблюдение правил ограничения при попытке совершения операции обновления |
ExtendedProperties | Возвращает коллекцию настраиваемых данных пользователя, связанных с DataSet |
HasErrors | Возвращает значение, определяющее наличие ошибок в любом из объектов DataTable в классе DataSet |
Locale | Возвращает или задает сведения о языке, используемые для сравнения строк таблицы |
Namespace | Возвращает или задает пространство имен класса DataSet |
Prefix | Возвращает или задает префикс XML, который является псевдонимом пространства имен класса DataSet |
Relations | Возвращает коллекцию соотношений, связывающих таблицы и позволяющих переходить от родительских таблиц к дочерним |
Site | Переопределен. Возвращает или задает тип System.ComponentModel.ISite для класса DataSet |
Tables | Возвращает коллекцию таблиц класса DataSet |
AcceptChanges | Сохраняет все изменения, внесенные в класс DataSet после его загрузки или после последнего вызова метода AcceptChanges |
Clear | Удаляет из класса DataSet любые данные путем удаления всех строк во всех таблицах |
Clone | Копирует структуру класса DataSet, включая все схемы, соотношения и ограничения объекта DataTable. Данные не копируются |
Copy | Копирует структуру и данные для класса DataSet |
Dispose (унаследовано от MarshalByValueComponent) | Перегружен. Освобождает ресурсы, использовавшиеся объектом MarshalByValueComponent |
Equals (унаследовано от Object) | Перегружен. Определяет, равны ли два экземпляра Object |
GetChanges | Перегружен. Возвращает копию класса DataSet, содержащую все изменения, внесенные после его последней загрузки или после вызова метода AcceptChanges |
GetHashCode (унаследовано от Object) | Служит хэш-функцией для конкретного типа, пригоден для использования в алгоритмах хэширования и структурах данных, например в хэш-таблице |
GetService (унаследовано от MarshalByValueComponent) | Получает реализацию объекта IServiceProvider |
GetType (унаследовано от Object) | Возвращает Type текущего экземпляра |
GetXml | Возвращает XML-представления данных, хранящихся в классе DataSet |
GetXmlSchema | Возвращает XSD-схему для XML-представление данных, хранящихся в классе DataSet |
HasChanges | Перегружен. Возвращает значение, определяющее наличие изменений в классе DataSet, включая добавление, удаление или изменение строк |
InferXmlSchema | Перегружен. Применяет XML-схему к классу DataSet |
Merge | Перегружен. Осуществляет слияние указанного класса DataSet, DataTable или массива объектов DataRow с текущим объектом DataSet или DataTable |
ReadXml | Перегружен. Считывает XML-схему и данные в DataSet |
ReadXmlSchema | Перегружен. Считывает XML-схему в DataSet |
RejectChanges | Отменяет все изменения, внесенные в класс DataSet после его создания или после последнего вызова метода DataSet.AcceptChanges |
Reset | Сбрасывает DataSet в исходное состояние. Для восстановления исходного состояния класса DataSet необходимо переопределить метод Reset в подклассах |
ToString (унаследовано от Object) | Возвращает String, который представляет текущий Object |
WriteXml | Перегружен. Записывает XML-данные и по возможности схемы из DataSet |
WriteXmlSchema | Перегружен. Записывает структуру класса DataSet в виде XML-схемы |
Disposed (унаследовано от MarshalByValueComponent) | Добавляет обработчик событий, чтобы воспринимать событие Disposed на компоненте |
MergeFailed | Возникает, если значения первичного ключа конечного и основного объектов DataRow совпадают, а свойство EnforceConstraints имеет значение true |
DataSet-конструктор | Перегружен. Инициализирует новый экземпляр класса DataSet |
Events (унаследовано от MarshalByValueComponent) | Получает список обработчиков событий, которые подключены к этому компоненту |
Dispose (унаследовано от MarshalByValueComponent) | Перегружен. Освобождает ресурсы, использовавшиеся объектом MarshalByValueComponent |
Finalize (унаследовано от Object) | Переопределен. Позволяет объекту Object попытаться освободить ресурсы и выполнить другие завершающие операции, перед тем как объект Object будет уничтожен в процессе сборки мусора |
System.ComponentModel.IListSource.ContainsListCollection