7. Добавить созданную таблицу в коллекцию Tables набора.
8. Повторить пп. 2-8 для каждой из создаваемых таблиц набора данных.
9. Если необходимо установить отношение между таблицами набора данных, создать объект типа DataRelation, задать в нем родительскую и дочернюю таблицу, столбцы связи, правила каскадных воздействий и прочие параметры, а затем добавить созданный объект DataRelation в коллекцию Relations набора данных.
10. Повторить действия, изложенные в п. 9, для каждого отношения между таблицами, которое нужно добавить в набор данных.
11. Если необходимо, залить данными таблицы набора.
Ниже рассматриваются примеры создания нетипизированных наборов данных. Первый пример - создание набора с единственной таблицей и заливка ее данными. Второй пример чуть сложнее - он показывает создание набора данных, в состав которого входят две таблицы, связанные между собою отношением подчинения.
Пример. Создание нетипизированного набора данных, в состав которого входит таблица Kaf со столбцами KK Nazv, Fakultet. Первичный ключ таблицы стро-кится по столбцу KK После создания набора таблица Kaf заливается данными из источника данных. Для этого используется существующий в форме адаптер данных с именем aKa f. Затем таблица и набор данных связываются с элементом управления DataGrid. Все. Теперь пользователь может работать с записями таблицы нетипизированного набора.
//---создание столбцов таблицы:
//столбец первичного ключа DataColumn KK = new DataColumn("KK",
System.Type.GetType("System.Int16")); KK.Unique = true; //остальные столбцы
DataColumn Nazv = new DataColumn("Nazv",
System.Type.GetType("System.String"));
DataColumn Fakultet = new DataColumn("Fakultet",
System.Type.GetType("System.String"));
//---создание таблицы набора данных
DataTable Kaf = new DataTable();
//---добавление столбцов в таблицу
Kaf.Columns.Add(KK);
Kaf.Columns.Add(Nazv);
Kaf.Columns.Add(Fakultet);
//---задание первичного ключа таблицы
Kaf.PrimaryKey = new DataColumn[] {KK};
//---создание нетипизированного набора данных
DataSet dataSet1 = new DataSet();
//---добавление таблицы в набор данных
dataSet1.Tables.Add(Kaf);
//---заливка данных в таблицу
aKaf.Fill(dataSetl, "Kaf");
//---связывание dataGrid и таблицы
//---нетипизированного набора
dataGridl.DataSource = dataSetl; dataGridl.DataMember = "Kaf";
Пример. Создадим нетипизированный набор данных и в его составе две таблицы: Kaf (кафедры вуза) и Prep (преподаватели кафедр). Между таблицами установим связь, в рамках которой Kaf выступает как родительская, а Prep - как дочерняя таблица. Пусть в форме имеем адаптеры aKaf и aPrep. Зальем из них данные в таблицы нетипизированного набора данных. Визуализируем содержимое таблиц в двух элементах управления типа DataGrid.
//---создание таблицы Kaf
DataTable Kaf = new DataTable("Kaf");
//---создание столбцов таблицы:
DataColumn KK = new DataColumn("KK", System.Type.GetType("System.Intl6")); DataColumn Nazv = new DataColumn("Nazv",