Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Троелсен Э. Язык программирования С# 2010 и п...docx
Скачиваний:
113
Добавлен:
21.09.2019
Размер:
6.92 Mб
Скачать

Создание DataColumn

Чтобы продолжить работу с проектом 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.

static void Main(string[] args) {

 …

 // Добавление DataColumn в DataTable.

 DataTable inventoryTable = new DataTable("Inventory");

 inventoryTable.Columns.AddRange(new DataColumn[] {

  carIDColumn; carMakeColumn, carColorColumn, carPetNameColumn

 });

}