Таблица 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 |
Чтобы продолжить работу с проектом SimpleDataSet (и привести пример использования DataColumn), предположим, что нам нужно представить столбцы таблицы Inventory. Учитывая то, что столбец CarID является первичным ключом таблицы, мы сделаем объект DataColumn доступным только для чтения, с ограничением уникальности и не допускающим ввода значений null (используя свойства ReadOnly, Unique и AllowDBNull). Обновите метод Main() так, чтобы построить четыре объекта DataColumn.
static void Main(string[] args) {
…
// Создание объектов DataColumn, отображающих 'реальные'
// столбцы таблицы Inventory из базы данных Cars.
DataColumn carIDColumn = new DataColumn("CarID", typeof(int));
carIDColumn.Caption = "Номер";
carIDColumn.ReadOnly = true;
carIDColumn.AllowDBNull = false;
carIDColumn.Unique = true;
DataColumn carMakeColumn = new DataColumn("Make", typeof(string));
DataColumn carColorColumn = new DataColumn("Color", typeof(string));
DataColumn carPetNameColumn = new DataColumn("PetName", typeof(string));
carPetNameColumn.Caption = "Название";
}
Разрешение автоприращения для полей
Одной из возможностей DataColumn, которая может Вам понадобиться, будет возможность автоприращения. Автоприращение используется для того, чтобы при добавлении новой строки столбцу автоматически присваивалось значение, вычисленное на основе заданного приращения. Это может оказаться полезным тогда, когда вы хотите, чтобы столбец не имел повторяющихся значений (например, как первичный ключ).
Соответствующим поведением можно управлять с помощью свойств AutoIncrement, AutoIncrementSeed и AutoIncrementStep. Значение AutoIncrementSeed используется для начального значения столбца, а значение AutoIncrementStер задает число, которое следует добавить к AutoIncrementSeed, когда выполняется приращение. Рассмотрите следующую модификацию конструкции объекта carIDColumn типа DataColumn.
static void Main(sting[] args) {
…
DataColumn carIDColumn = new DataColumn("CarID", typeof(int));
carIDColumn.ReadOnly = true;
CarIDColumn.Caption = "Номер";
CarIDColumn.AllowDBNull = false;
carIDColumn.Unique = true;
carIDColumn .AutoIncrement= true;
carIDColumn .AutoIncrementSeed= 0;
catIDColumn .AutoIncrementStep =1;
}
Здесь объект объект carIDColumn сконфигурирован так, чтобы при добавлении строк в соответствующую таблицу значение данного столбца увеличивалось на 1. Начальным значением является 0, поэтому для столбца будут выбираться числа 0, 1, 2. 3 и т.д.
Добавление DataColumn в DataTable
Тип DataColumn обычно не существует автономно, а добавляется в соответствующий объект DataTable.Для примера создайте новый тип DataTable (подробности будут предложены чуть позже) и вставьте объекты DataColumn в коллекцию) столбцов, используя свойство Columns.
Читать дальше