仅将2个数据表与公共行合并

本文关键字:合并 2个 数据表 仅将 | 更新日期: 2023-09-27 18:04:01

我有两个数据表:

_wizardStepSelectUnitDataSet。WizardStepSelectUnits_UnitsSelectedInOtherAgreements

_wizardStepSelectUnitDataSet。WizardStepSelectUnits_SelectedUnits

模式是相同的,我需要知道哪些行存在于两个数据表中,

我如何将其放入一个新的数据表中?

没有CODE:我只设计了2个数据表。它们已经被内存中的一些数据填充。

我需要知道使用一个ID字段的两个数据表之间的公共行。

我不能复制设计者的代码,你会不知所措。

我试过了:Var result =从r in_wizardStepSelectUnitDataSet.WizardStepSelectUnits_UnitsSelectedInOtherAgreements.AsEnumerable ()连接c在_wizardStepSelectUnitDataSet.WizardStepSelectUnits_SelectedUnits.AsEnumerable()on r.Field("UnitId") = c.Field("UnitId")选择r;

        DataRow[] dr = result.Select(
            String.Format(CultureInfo.InvariantCulture.DateTimeFormat,"StartDate <= #{0}#", stopDate));

然而,我得到了一个编译错误:错误7方法"System.Linq.Enumerable.Select(System.Collections.Generic)"的类型参数。IEnumerable, System.Func)'不能从用法中推断出来。尝试显式指定类型参数。C:'BITProjects'TeamSystem' luivar ' reform 'DEV'AgreementModule'GUI'WorkItems'UC021_HuurovereenkomstWizard_WorkItem.cs 511 28 ceuster . ref .AgreementModule.GUI

谢谢

仅将2个数据表与公共行合并

我不太擅长LINQ,但也许你想尝试这种方法?

var result = from r in dt.AsEnumerable()
                     join c in dt2.AsEnumerable()
                     on r.Field<string>("col1") equals c.Field<string>("col1")
                     select r;

然后为两个表中的所有列。

我相信有一种方法可以比较完整的行,而不是字段/列。

在表中标识一个unique_id字段,然后,

SELECT *从表1,表2表1。Unique_id = table2.unique_id

一旦您对返回的内容感到满意,您就可以基于select语句构建插入语句。

使用System.Data.DataTable.Merge(),参见:http://msdn.microsoft.com/en-us/library/fk68ew7b.aspx

编辑:可能不是一个相关的答案,我误解了"存在于两个表上"。是的,你要找的就是别人猜测的交集。