Технология Microsoft ADO.NET



           

Программное создание объектов - часть 2


Мы создаем поля, нужные для отражения соответствующих столбцов в таблице Questions. Перегруженный метод Add свойства Columns объекта dtQuestions позволяет задавать название столбца и его тип данных (рис. 8.7):

Создание поля

увеличить изображение
Рис. 8.7.  Создание поля

Свойство Unique указывает, что в этом поле не должно быть повторяющихся значений, оно должно быть уникальным (здесь - поле questID является первичным ключом таблицы Questions).

Точно так же создаем объект DataTable для таблицы Variants и соответствующие поля:

//Cоздаем таблицу "Variants" DataTable dtVariants = dsTests.Tables.Add("Variants");

//Заполняем поля таблицы "Variants" DataColumn dcID = dtVariants.Columns.Add("id", typeof(Int32)); dcID.Unique = true; dcID.AutoIncrement = true; DataColumn dcVariantQuestID = dtVariants.Columns.Add("questID", typeof(Int32)); DataColumn dcVariant = dtVariants.Columns.Add("variant"); DataColumn dcIsRight = dtVariants.Columns.Add("isRight", typeof(Boolean));

Здесь мы дополнительно установили свойству AutoIncrement объекта dcID значение true. Свойство AutoIncrement (Счетчик) позволяет создать счетчик для поля, аналогичный типу данных "Счетчик" в Microsoft Access.

Теперь приступим к созданию связи между таблицами. В базе данных Microsoft SQL Tests между родительской таблицей Questions и дочерней Variants была установлена связь по полю questID, которое было в обеих таблицах. При программном создании объектов для поля questID таблицы Questions был создан объект dсQuestID, для этого же поля таблицы Variants создан объект dcVariantQuestID. В коде создание отношения между таблицами будет иметь следующий вид:

DataRelation drQuestionsVariants = new DataRelation("QuestionsVariants", dсQuestID, dcVariantQuestID); dsTests.Relations.Add(drQuestionsVariants);

Здесь в конструкторе drQuestionsVariants - название экземпляра объекта (класса) DataRelation, а QuestionsVariants - свойство relationName - название связи, которая будет содержаться в объекте drQuestionsVariants.


Содержание  Назад  Вперед