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



           

Вывод связанных таблиц. Вывод двух таблиц в один элемент DataGrid - часть 2


dataGrid1.DataSource = ds.Tables["Туристы"].DefaultView;

Закрываем соединение:

conn.Close();

Запускаем приложение. Пока на форме появляется только одна таблица. Закрываем приложение и переходим в код формы. Теперь нам следует добавить объекты OleDbDataAdapter и OleDbCommand для таблицы "Информация о туристах":

OleDbCommand myCommand2 = new OleDbCommand(); myCommand2.Connection = conn; myCommand2.CommandText = commandText2; OleDbDataAdapter dataAdapter2 = new OleDbDataAdapter();

Обратите внимание, что dataAdapter2 использует то же самое подключение conn, что и dataAdapter.

Строку commandText2 определим следующим образом:

string commandText2 = "SELECT [Код туриста], [Серия паспорта], Город, Страна, Телефон, Индекс FROM [Информация о туристах]";

Теперь свяжем второй объект OleDbDataAdapter с только что созданной второй командой и отобразим "Информацию о туристах" на его таблицу. Затем можно заполнить объект DataSet данными из второй таблицы:

dataAdapter2.SelectCommand = myCommand2; dataAdapter2.TableMappings.Add("Table", "Информация о туристах"); dataAdapter2.Fill(ds);

В итоге у нас получился объект DataSet с двумя таблицами. Теперь можно выводить одну из этих таблиц на форму, или две сразу. Но связь между таблицами еще не создана. Для конфигурирования отношения по полю "Код туриста" создаем два объекта DataColumn:

DataColumn dcTouristsID = ds.Tables["Туристы"].Columns["Код туриста"]; DataColumn dcInfoTouristsID = ds.Tables["Информация о туристах"].Columns["Код туриста"];

Создаем объект DataRelation, в его конструкторе передаем название отношения между таблицами и два объекта DataColumn:

DataRelation dataRelation = new DataRelation("Дополнительная информация", dcTouristsID, dcInfoTouristsID);

Добавляем созданный объект отношения к объекту DataSet:

ds.Relations.Add(dataRelation);

Создаем объект DataViewManager, отвечающий за отображение DataSet в объекте DataGrid:




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