我有两个数据表。一个是另一个的超集。两者都有一列StageID常见。我需要将这两个表合并在一起,以便子集数据表数据存储在超集表的正确行中。
这是我在检索JoinTable中的超集数据和DTMaterialProperties表中的子集数据后加入数据的方法
foreach (DataColumn dcMaterialProp in dtMaterialProperties.Columns)
{
if (dcMaterialProp.ColumnName != "StageId" &&
JoinDataTable.Columns.Contains(dcMaterialProp.ColumnName))
{
JoinDataTable.Rows[rowCount][dcMaterialProp.ColumnName] =
dtMaterialProperties.Rows[0][dcMaterialProp.ColumnName];
}
}
但这并不高效,因为它需要花费大量时间来完成。 请帮助我找到更好的方法。
答案 0 :(得分:0)
如果您可以使用LINQ,一种简单的方法是使用Join
扩展方法。
请参阅Join Method-Based Query Syntax Examples (LINQ to DataSet)
答案 1 :(得分:0)
如果您无权访问LINQ to DataSet
...您可以从MSDN查看此链接,了解如何实现DataSet JOIN Helper类。
HOW TO: Implement a DataSet JOIN helper class is Visual C# .NET
答案 2 :(得分:0)
你真正想要的似乎是一种关系。如果将两个数据表添加到同一数据集,则可以定义关系。见Define a relationship between two tables in a DataSet in VB .NET
然后,您只需要parentRow.GetChildRows()
来获取相关的子行。