如何将两个数据表组合在一起c#

时间:2009-10-29 15:46:21

标签: c# datatable

我有两个数据表。一个是另一个的超集。两者都有一列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];
   }
}

但这并不高效,因为它需要花费大量时间来完成。 请帮助我找到更好的方法。

3 个答案:

答案 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()来获取相关的子行。