繁体   English   中英

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

[英]How to combine two datatable together c#

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

但这效率不高,因为要花很多时间才能遍历。 请帮助我找到更好的方法来做到这一点。

如果可以使用LINQ,一个简单的方法就是使用Join扩展方法。

请参见基于连接方法的查询语法示例(LINQ到数据集)

如果您无权访问LINQ to DataSet

...您可以从MSDN上查看有关如何实现DataSet JOIN Helper类的链接。

HOW TO:实现数据集联接帮助器类是Visual C#.NET

您真正寻找的似乎是一种关系。 如果将两个数据表都添加到同一数据集中,则可以定义关系。 请参见在VB .NET中在数据集中定义两个表之间的关系

然后,您要做的就是parentRow.GetChildRows()来获取关联的子行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM