[英]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 to DataSet
...您可以从MSDN上查看有关如何实现DataSet JOIN Helper类的链接。
您真正寻找的似乎是一种关系。 如果将两个数据表都添加到同一数据集中,则可以定义关系。 请参见在VB .NET中在数据集中定义两个表之间的关系
然后,您要做的就是parentRow.GetChildRows()
来获取关联的子行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.