仅将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
谢谢
我不太擅长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
编辑:可能不是一个相关的答案,我误解了"存在于两个表上"。是的,你要找的就是别人猜测的交集。