Таблицы ADO.NET

Объект DataTable:

DataTable — объект автономной части технологии ADO.NET, представляющий собой таблицу с данными.

Основными составляющими объекта DataTable являются объекты DataRow, представляющие собой строки таблицы с данными и объекты DataColumn, представляющие собой колонки таблицы.

Объекты DataRow содержаться в таблице в коллекции строк(DataRowCollection), а объекты DataColumn в коллекции столбцов таблицы(DataColumnCollection)

Объект DataColumn:

Объект DataColumn представляет собой отдельный столбец таблицы. При создании объекта DataColumn следует указать имя колонки и тип данных, которые будет содержать колонка.

Если не указать тип данных для колонки будет автоматически выбран тип String

После создания экземпляра DataColumn можно добавлять его в коллекцию столбцов экземпляра DataTable.

Набор столбцов таблицы с их именами и типами данных называется схемой таблицы.

Объект DataRow:

Объект DataRow представляет собой отдельную строку таблицы.

Для создания объекта DataRow нельзя пользоваться конструктором. Строка может быть создана на основе схемы существующей таблицы.

Для создания строк у объекта DataTable есть метод NewRow(), возвращающий объект DataRow с полями, аналогичными столбцам таблицы.

При создании новой строки с помощью метода NewRow она не помещается в коллекцию строк таблицы.

Использование DataReader для создания схемы объекта DataTable:

На практике часто приходится создавать объекты DataTable с аналогичной схемой таблицы в источнике данных.

Объект DataReader предоставляет ряд методов для решения этой проблемы.

Метод GetName позволяет узнать имя столбца таблицы в источнике данных, а метод GetFieldType позволяет получить тип данных столбца таблицы в источнике данных

Следующий метод на основе переданного ему объекта SqlDataReader создает новый экземпляр DataTable со схемой, аналогичной таблице, к которой обращается DataReader.

Проверка данных:

Как правило таблицы, находящиеся в базе данных имеют ряд ограничений для данных, которые можно хранить в этих таблицах. Например некоторые столбцы могут хранить только уникальные данные, некоторые заполняются автоматически, а некоторые не могут хранить пустые значения.

Для создания таких ограничений в автономной части ADO.NET объекты DataTable и DataColumn имеют ряд свойств.

Свойства объекта DataColumn:

Для проверки данных на уровне таблиц объект DataColumnпредоставляет следующие свойства :

  • Readonly – возвращает или задает значение, указывающее на допустимость изменения столбца после добавления строки в таблицу.
  • AllowDBNull – возвращает или задает значение, указывающее на допустимость нулевых значений в этом столбце для строк, принадлежащих таблице.
  • MaxLength – возвращает или задает максимальную длину текстового
  • столбца.
  • Unique — возвращает или задает значение, показывающее, должны ли
  • значения в каждой строке столбца быть уникальными.

Ограничения DataTable:

Для проверки данных на уровне DataSet объект DataTable предоставляет коллекцию ConstraintCollection, которая может одержать экземпляры классов, наследуемых от базового класса Constraint. Обратиться к коллекции ConstraintCollection таблицы можно с помощью свойства Constraints.:

Для объекта DataTable можно задать следующие ограничения:

  • UniqueConstraint — предоставляет ограничение на набор столбцов, в которых все значения должны быть уникальными. Следует пользоваться этим ограничением в том случае, когда необходимо гарантировать уникальность комбинаций значений различных полей таблицы
  • PrimaryKey – особый вид ограничения на уникальность. Первичный ключ таблицы может быть только один
  • ForeignKeyConstraint – ограничение, гарантирующее что нельзя создать строку в дочерней таблице, которая ссылается на несуществующую строку родительской таблицы.

Примеры:

Использование метода GetSchemaTable для получения информации о схеме таблицы к которой обращается объект DataReader

Свойство Reaonly объекта DataColumn позволяет задать значение, указывающее на допустимость изменения столбца после добавления строки в таблицу.

Свойство AllowDBNull объекта DataColumn возвращает или задает значение, указывающее на допустимость нулевых значений в этом столбце для строк, принадлежащих таблице.

Свойство MaxLength объекта DataColumn возвращает или задает максимальную длину текстового столбца.

Свойство Unique объекта DataColumn возвращает или задает значение, показывающее, должны ли значения в каждой строке столбца быть уникальными.

Класс UniqueConstraint предоставляет ограничение на набор столбцов, в которых все значения должны быть уникальными.

Следует пользоваться этим ограничением в том случае, когда необходимо гарантировать уникальность комбинаций значений различных полей таблицы.

PrimaryKey – особый вид ограничения на уникальность. Первичный ключ таблицы может быть только один.

ForeignKeyConstraint – ограничение, гарантирующее что нельзя создать строку в дочерней таблице, которая ссылается на несуществующую строку родительской таблицы.

Обновлено: 01.02.2019 — 09:45

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.