Имея определенную подготовку в области теории реляционных баз данных, вы должны знать, что столбцу в таблице данных можно назначить набор ограничений (например, использовать столбец в качестве первичного ключа, задать значение по умолчанию, потребовать, чтобы информация в столбце была доступна только для чтения и т.д.). Также каждый столбец в таблице должен соответствовать заданному для него типу данных. Например, структура таблицы Inventory требует, чтобы значения столбца CarID были целыми числами, а значения Make, Color и PetName – наборами символов. Класс DataColumn имеет множество свойств, которые позволяют выполнить соответствующие настройки. Описания основных свойств этого типа приведены в табл. 22.11.
Таблица 22.11. Свойства DataColumn
Свойства | Описание |
---|---|
AllowDBNull | Индикатор того, что строка в этом столбце может содержать значение null. Значением по умолчанию является true |
AutoIncrement AutoInсrementSeed AutoIncrementStep | Используются для настройки автоприращения для данного столбца, когда нужно гарантировать уникальность значений в данном объекте DataColumn (например, для первичного ключа). По умолчанию в DataColumn автоприращение не выполняется |
Caption | Читает или устанавливает текст заголовка, который должен отображаться для данного столбца (например, текст, который увидит конечный пользователь, в DataGridView) |
Определяет | представление DataColumn при сохранении DataSet в виде XML-документа с помощью метода DataSet.WriteXml |
ColumnName | Читает или устанавливает имя столбца в коллекции Columns (т.е. его представление в DataTable). Если не установить ColumnName явно, значением по умолчанию будет Column с номером столбца (т.е. Column1, Column2, Column3 и т.д.) |
DataType | Определяет тип данных, хранимых в столбце (логический, строковый, числовой с плавающей точкой и т.д.) |
DefaultValue | Читает или устанавливает значение, которое должно приписываться по умолчанию для данного столбца при вставке новых строк. Это значение используется тогда, когда не указано иное |
Expression | Читает или устанавливает выражение, используемое для фильтрации строк, вычисления значений столбца или создания агрегированных столбцов |
Ordinal | Возвращает числовую позицию столбца в коллекции Columns, поддерживаемой объектом DataTable |
ReadOnly | Индикатор запрета изменения содержимого столбца после добавления строки в таблицу. Значением по умолчанию является false |
Table | Возвращает объект DataTable, содержащий данный объект DataColumn |
Unique | Индикатор требования уникальности значений в данном столбце. Если столбцу назначается ограничение первичного ключа, свойству Unique должно быть назначено значение true |
Создание DataColumn
Чтобы продолжить работу с проектом SimpleDataSet (и привести пример использования DataColumn), предположим, что нам нужно представить столбцы таблицы Inventory. Учитывая то, что столбец CarID является первичным ключом таблицы, мы сделаем объект DataColumn доступным только для чтения, с ограничением уникальности и не допускающим ввода значений null (используя свойства ReadOnly, Unique и AllowDBNull). Обновите метод Main так, чтобы построить четыре объекта DataColumn.