Реклама:

Чтобы на этапе разработки приложения удалить столбец из таблицы нетипизиро-ванного набора данных, нужно:

1. Выделить в форме объект DataSet, соответствующий этому набору.

2. В окне свойств набора выбрать свойство Tables и нажать кнопку эллипса (...) в поле значения этого свойства.

3. В появившемся окне Tables Collection Editor в списке Members выбрать из списка нужную таблицу.

4. В левой части окна в списке Properties выбрать свойство Columns и в поле данных свойства нажать кнопку эллипса (...).

5. В появившемся окне Columns Collection Editor в списке Members отыскать имя нужного столбца и нажать кнопку Remove.

6. Выйти изо всех перечисленных окон, нажимая кнопку Close.

3.4.14. Чтение и интерпретация ограничений таблицы

Коллекция Constraints таблицы набора данных:

public ConstraintCollection Constraints {get;}

может содержать ограничения двух типов 1:

1) System.Data.UniqueConstraint - ограничения на: а) столбцы первичного ключа; б) уникальные столбцы, не входящие в состав первичного ключа;

2) System.Data.ForeignKeyConstraint - ограничения внешнего ключа дочерней таблицы, при наличии отношения между двумя таблицами набора данных.

Отметим, что элемент коллекции Constraints возвращается как объект типа System.Data.Constraint, базового для UniqueConstraint и ForeignKey Constraint.

Разберемся поподробнее. Пусть в наборе данных nd (схема показана на рис. 3.84) есть две таблицы, связанные отношением подчинения: Kaf (родительская) и Prep (подчиненная).

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 3.84

Если мы заглянем в коллекцию Constraints родительской таблицы Kaf, то обнаружим там только ограничение UniqueConstraint, которое построено для пер-

1 Использование классов UniqueConstraint и ForeignKeyConstraint наиболее полно рассматривается в 8.1.

вичного ключа названной таблицы. Если понадобится выяснить, не выступает ли данная таблица в роли родительской в каком-либо из отношений набора данных, придется просмотреть коллекцию Relations набора данных1 либо воспользоваться свойством ChildRelations самой таблицы:

public DataRelationCollection ChildRelations {get;}

Это свойство возвращает только те элементы коллекции Relations набора данных, в которых данная таблица выступает в качестве родительской.

Пример. Выдадим в объект textBoxl сведения о всех таблицах, для которых таблица Kaf является родительской в отношениях набора данных nd. Результат показан на рис. 3.85.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 3.85

Вариант 1. Простой перебор коллекции Relations набора данных:

textBoxl.Text = ""; textBoxl.Text =

textBoxl.Text + "Таблица Kaf - родительская для к таблиц: " + (char)13 + (char)10;

foreach(DataRelation drl in ndl.Relations) { if (drl.ParentTable.TableName == "Kaf") { textBoxl.Text = textBoxl.Text + (char)9 +

drl.ChildTable + (char)l3 + (char)l0;

}

}

Вариант 2. Сразу получаем нужные объекты DataRelation из коллекции Relations набора данных в виде отдельной коллекции, возвращаемой свойством

ChildRelations таблицы Kaf:

textBoxl.Text = ""; textBoxl.Text =

textBoxl.Text + "Таблица Kaf - родительская для к таблиц: " +


⇐ Предыдущая страница| |Следующая страница ⇒