0

我在 DataTables 上搜索了很多关于动态连接的信息,我发现:

带有动态列的内部联接

数据表的内连接

动态 Linq 到动态连接

加入 DataTable 支持 Left-Right-Full

但我找不到任何通用解决方案,假设这种情况用于连接两个表:

DT1 Left Join DT2 On DT1.Id != DT2.Id

或者

DT1 Right Join DT2 On ((DT1.Age + 2) = DT2.Age) OR (DT1.BirthDate > DT2.BirthDate))

如您所见,我需要一些通用的解决方案来动态连接两个具有复杂 Where 子句的 DataTables,我有一个数据结构来支持复杂的 Where 子句,但是如何动态连接呢?有什么建议吗?

4

1 回答 1

0

如果在 3.0 或更高版本上工作,您可以在此处使用 LINQ。我知道它不正确,只是给你一个想法。您需要在此代码中进行一些研究。只是为了帮助。如果没有找到匹配的记录,您已申请DefaultIfEmpty要从中返回 null 的表。

var dt = (from dt1  in DT1.AsEnumerable()
          from dt2 in DT2.AsEnumerable().Where(dt1.Id==dt2.Id).DefaultIfEmpty()
          select new {
           dt1.Column
          }).CopyToDataTable();
于 2013-10-22T13:36:37.653 回答