Решение задачи программно в коде

Последовательность действий такова

1. Создать экземпляр самого набора данных (объект класса DataSet).

2. Создать пустой экземпляр таблицы (объект класса DataTable).

3. Создать столбцы таблицы (объекты класса DataColumn).

4. Добавить столбцы в коллекцию Columns таблицы.

5. Задать для таблицы первичный ключ (свойство PrimaryKey).

6. Если нужно, задать для таблицы ограничения столбцов, которые не входят в состав первичного ключа, но, тем не менее, должны содержать уникальные, неповторяющиеся значения (объект класса UniqueConstraint в коллекции Constraints таблицы).

7. Добавить созданную таблицу в коллекцию Tables набора.

8. Повторить пп. 2–8 для каждой из создаваемых таблиц набора данных.

9. Если необходимо установить отношение между таблицами набора данных, создать объект типа DataRelation, задать в нем родительскую и дочернюю таблицу, столбцы связи, правила каскадных воздействий и прочие параметры, а затем добавить созданный объект DataRelation в коллекцию Relations набора данных.

10. Повторить действия, изложенные в п. 9, для каждого отношения между таблицами, которое нужно добавить в набор данных.

//---создание таблицы dep

DataTable dep = new DataTable("Отделы");

//---создание столбцов таблицы:

DataColumn otd = new DataColumn("Отдел", System.Type.GetType("System.String"));

//---добавление столбцов в таблицу

dep.Columns.Add(otd);

//---задание первичного ключа таблицы

dep.PrimaryKey = new DataColumn[] { otd };

//---создание таблицы sotr

DataTable sotr = new DataTable("Сотрудники");

//---создание столбцов для Sotr

DataColumn TabN = new DataColumn("ТабН", System.Type.GetType("System.Int32"));

DataColumn fio = new DataColumn("Имя", System.Type.GetType("System.String"));

DataColumn ot = new DataColumn("Отдел", System.Type.GetType("System.String"));

//---добавление столбцов в таблицу sotr

sotr.Columns.Add(TabN);

sotr.Columns.Add(fio);

sotr.Columns.Add(ot);

//---задание первичного ключа таблицы sotr

sotr.PrimaryKey = new DataColumn[] { TabN };//массив

//---создание нетипизированного набора данных

DataSet myDS1 = new DataSet();

//---добавление таблиц в набор данных

myDS1.Tables.Add(dep);

myDS1.Tables.Add(sotr); //---создание отношения между таблицами dep и sotr

DataRelation drl = new DataRelation("FK_dep_sotr", myDS1.Tables["Отделы"].Columns["Отдел"], myDS1.Tables["Сотрудники"].Columns["Отдел"], true);

//---и добавление этого отношения в набор данных

myDS1.Relations.Add(drl);

//---связывание dataGrid и таблиц нетипизированного набора

dataGridView1.DataSource = myDS1;

dataGridView1.DataMember = "Отделы";

dataGridView2.DataSource = myDS1;

dataGridView2.DataMember = "Отделы.FK_dep_sotr";


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: