И так в прошлых шагах мы научились отображать данные из таблицы в DataGrid, но возникает вопрос, что делать если у нас есть две таблицы master/details? Всё весьма просто в DataSet можно добавлять реляционные связи. Для начала добавим в Dataset который мы создали в прошлых шагах ещё одну таблицу Сustomers со следующими полями:
Итого мы имеем две таблицы.
Создаём таблицу.
DataTable Orders = new DataTable("Orders"); column = new DataColumn(); ...... ...... myDataSet.Tables.Add(Orders);
Создали таблицу потом, добавим в неё записи. Не забудьте подтвердить все изменения в конце
myDataSet.Tables["Customers"].AcceptChanges(); myDataSet.Tables["Orders"].AcceptChanges();
Теперь нам нужно создать в DataSet реляционные отношения. Для этого нам нужны два столбца из двух таблиц, получим их
System.Data.DataColumn column1; System.Data.DataColumn column2; column1 = myDataSet.Tables["Customers"].Columns["customer_id"]; column2 = myDataSet.Tables["Orders"].Columns["customer_id"];
И создадим relation. В DataSet есть проперти Relations, которое возвращает коллекцию объектов DataRelation. Объект DataRelation имеет четыре конструктора:
public DataRelation(string, DataColumn[], DataColumn[]) public DataRelation(string, DataColumn, DataColumn) public DataRelation(string, DataColumn[], DataColumn[], bool) public DataRelation(string, DataColumn, DataColumn, bool)
Остановимся на последнем конструкторе первый параметр название отношения, вторые два столбцы таблиц. Третий пока не трогаем, но установим его в true;
System.Data.DataRelation rel; rel = new System.Data.DataRelation("товары", column1, column2, true); И добавим её myDataSet.Relations.Add(rel);
Теперь откомпилируем проект и запустим его, напротив каждой записи мы видим плюсик, понажимайте по ним и на закладки которые повыпадали при этом, ну как понравилось? Дельфи отдыхает !!!