我有多个数据表(9 个数据表),每列超过 15 个。每个数据表都有一个公共字段 ItemID 和相等的行数。我的要求是将这些数据表组合到一个数据表中,以便我可以绑定到网格。我尝试使用数据集合并功能,但合并 9 个数据表需要很长时间。有没有其他选择可以做到这一点。
问问题
661 次
2 回答
0
如果您有权访问数据库层,则可以创建连接每个表的 SQL 查询。通常,在数据库级别而不是 .NET 级别对大型数据集的操作会明显更快。
于 2013-06-17T14:50:00.757 回答
0
您可能想要做这样的事情而不是使用 DataTable。
public class RowWrapper
{
public DataRow TheRow;
public EType RowType;
public Enum EType {
Type1
, Type2
, ...
}
public RowWrapper(DataTable theRow, EType rowType)
{
this.TheRow = theRow;
this.RowType = rowType;
}
}
<...>
this.myGrid.DataSource = Table1.AsEnumerable().Select(r => new RowWrapper(r, EType.Type1))
.Union(Table2.AsEnumerable().Select(r => new RowWrapper(r, EType.Type2))
.Union ...
然后在您的行绑定事件处理程序中。
var rw = e.Item.DataItem as RowWrapper;
switch (rw.RowType)
{
case EType.Type1 :
...
case EType.Type2 :
...
...
}
于 2013-06-17T14:56:09.677 回答