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



           

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


DataViewManager dsview = ds.DefaultViewManager;

Присваиваем свойству DataSource объекта DataGrid созданный объект DataViewManager:

dataGrid1.DataSource = dsview;

Последнее, что нам осталось сделать, - сообщить объекту DataGrid, какую таблицу считать главной (родительской) и, соответственно, отображать на форме:

dataGrid1.DataMember = "Туристы";

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

conn.Close();

Запускаем приложение. Теперь можно просматривать связанные записи (рис. 9.12):

 Для перехода на дочернюю запись нажимаем на ссылку "Дополнительная информация". Для возвращения на родительскую запись нажимаем на кнопку со стрелкой

увеличить изображение
Рис. 9.12.  Для перехода на дочернюю запись нажимаем на ссылку "Дополнительная информация". Для возвращения на родительскую запись нажимаем на кнопку со стрелкой

Обратите внимание, что здесь мы не стали накладывать ограничения - это сделано для упрощения кода.

Конструктор формы будет иметь следующий вид:

public Form1() { InitializeComponent(); OleDbConnection conn = new OleDbConnection(connectionString); OleDbCommand myCommand = new OleDbCommand(); myCommand.Connection = conn; myCommand.CommandText = commandText; OleDbDataAdapter dataAdapter = new OleDbDataAdapter(); dataAdapter.SelectCommand = myCommand; conn.Open();

DataSet ds = new DataSet(); dataAdapter.TableMappings.Add("Table", "Туристы"); dataAdapter.Fill(ds);

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

DataColumn dcTouristsID = ds.Tables["Туристы"].Columns["Код туриста"]; DataColumn dcInfoTouristsID = ds.Tables["Информация о туристах"].Columns["Код туриста"]; DataRelation dataRelation = new DataRelation("Дополнительная информация", dcTouristsID, dcInfoTouristsID); ds.Relations.Add(dataRelation); DataViewManager dsview = ds.DefaultViewManager; dataGrid1.DataSource = dsview; dataGrid1.DataMember = "Туристы"; conn.Close(); }




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