从组合表中读取主表和子表

时间:2011-07-03 06:18:48

标签: c# linq datatable ultragrid

使用Infragistics UltraWinGrid.UltraGrid控件在我的.Net 3.5 winforms应用程序中显示分层数据。 从我的中间层,我得到一个数据表,它结合了主表和子表的数据。 我可以使用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 :(得分:0)

也许你应该只在你的DataGridView控件中存储一个JOIN结果:

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并在必要时访问它。