Создание Windows-приложений на основе Visual C#



              

Вывод связанных таблиц - часть 2


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 с двумя таблицами. Теперь можно выводить одну из этих таблиц на форму или две сразу. Но связь между таблицами еще не создана. Объявим объект DataRelation:

DataRelation dataRelation;

Этот объект будет представлять собой отношение между таблицами, связанными по полю "Код поставщика" (см. рис. 4.2). Для конфигурирования этого отношения нам понадобятся два объекта типа DataColumn:

DataColumn dataColumn1; DataColumn dataColumn2;

Присваиваем каждому из этих объектов поле, по которому связаны таблицы:

dataColumn1 = ds.Tables["Поставщики"].Columns["Код поставщика"]; dataColumn2 = ds.Tables["Товары"].Columns["Код поставщика"];

Конструктору объекта dataRelation передаем имя отношения между таблицами и два объекта DataColumn:

dataRelation = new DataRelation("Товары этого поставщика", dataColumn1,dataColumn2);

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

ds.Relations.Add(dataRelation);

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

DataViewManager dsview = ds.DefaultViewManager;

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

dataGrid1.DataSource = dsview;




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