Чтение основных и дочерних таблиц из комбинированного стола - PullRequest
2 голосов
/ 03 июля 2011

Я использую элемент управления Infragistics UltraWinGrid.UltraGrid для отображения иерархических данных в моем приложении WinNet .Net 3.5.Из моего среднего уровня я получаю таблицу данных, которая объединяет данные как для основной, так и для дочерней таблиц.Я могу получить данные для дочерней таблицы, используя выражение group by.

Использую DataRelation, как показано ниже, а затем привязываю локальную переменную набора данных, содержащую основную и дочернюю таблицу, к сетке.

ds.Tables.Add(tableMaster); 
ds.Tables.Add(tableChild);

DataRelation reln = new DataRelation("MyReln", ds.Tables[0].Columns[colName], ds.Tables[1].Columns[colName], false);
ds.Relations.Add(reln); 

ds.AcceptChanges(); 

this.ultraGrid.DataSource = ds;

Мой вопрос: какой самый быстрый способ прочитать таблицы tableMaster и tableChild из приведенной выше сводной таблицы данных?

Спасибо.

1 Ответ

0 голосов
/ 09 июля 2011

Возможно, вам следует просто сохранить результат JOIN в элементе управления DataGridView:

string sql = "SELECT * " +
  "FROM TableMaster M " +
  "LEFT JOIN TableChild C ON M.ColName=C.ColName";
// SelectDataTable would be your collection method
DataTable bigTable = SelectDataTable(sql);
this.ultraGrid.DataSource = bigTable.DefaultView;

Таким образом, ваши данные всегда будут доступны.

РЕДАКТИРОВАТЬ: Конечно, вы всегда можете просто добавить bigTable к вашему DataSet и получить к нему доступ при необходимости.

...