Работа с базами данных на языке C#. Технология АDO .NET. Евсеева О.Н - 126 стр.

UptoLike

Составители: 

126
Здесь в конструкторе объекта DataRelation имя drQuestionsVariantsназва-
ние экземпляра объекта (класса) DataRelation, а строка "QuestionsVariants"пере-
даваемое конструктору свойство relationNameназвание связи, которая будет
содержаться в создаваемом объекте drQuestionsVariants. Другими словами,
drQuestionsVariantsназвание экземпляра DataRelation, которое будем использо-
вать в коде, а свойство relationNameвсего лишь название отражаемой связи,
которую можно удалить или переименовать.
Таким образом, можно программно создавать все объекты для отображе-
ния таблиц, полей и даже связей между таблицами.
Свойство PrimaryKey
Мы рассмотрели способ конструирования структуры таблицы в объекте
DataSet, а также как определять отношения между таблицами. Во всех случаях
для выделения первичного ключа в таблице использовалось свойство Unique.
Например, первичный ключ «Код туриста» для таблицы «Туристы» определял-
ся так:
DataColumn dcTouristID = new DataColumn("Код туриста", typeof(int));
dcTouristID.Unique = true;
А для таблицы вариантов ответов «Variants»:
DataColumn dcID = dtVariants.Columns.Add("id", typeof(Int32));
dcID.Unique = true;
dcID.AutoIncrement = true;
Для вывода таблиц идентификации записей этого определения вполне
хватает. Однако свойство Unique всего лишь указывает на уникальность задан-
ного поля, т. е. на отсутствие повторяющихся записей.
В самом деле, в таблице может быть несколько полей, которые должны
быть уникальными, и одно из них (или их комбинация) будут образовывать
первичный ключ. Для указания именно первичного ключа используется свойст-
во PrimaryKey объекта DataTable:
DataTable dtTourists = new DataTable("Туристы");
DataColumn dcTouristID = new DataColumn("Код туриста", typeof(int));
dtTourists.PrimaryKey = new DataColumn [] {dtTourists.Columns["Код туриста"]};
В сокращенной записи определение будет такое:
dtTourists.Columns.Add("Код туриста", typeof(int));
dtTourists.PrimaryKey = new DataColumn [] {dtTourists.Columns["Код туриста"]};
Можно применять комбинацию полей для задания первичного ключа:
DataTable dtTourists = new DataTable("Туристы");
DataColumn dcTouristID = new DataColumn("Код туриста", typeof(int));
DataColumn dcLastName = new DataColumn("Фамилия",typeof(string));
dtTourists.PrimaryKey =
new DataColumn [] {dtTourists.Columns["Код туриста"],dtTourists.Columns["Фамилия"]};