基于彼此相等的两列连接两个表

时间:2015-11-12 04:07:36

标签: c# linq datatable

我有两个数据表,所有字段都是字符串:

Table1
Branch
AccountNumber
Name
Address
City
State
Zip

Table2
Branch
AccountNumber
Address2
City2
State2
Zip2

我需要通过分支列和帐号列将两个表连接在一起,最后得到一个包含所有列的表。

我在另一篇文章中发现了这个并且无法解决细节问题:

var collection = from t1 in iom.DataTable.AsEnumerable()
         join t2 in iob.DataTable.AsEnumerable()
            on t1["Branch"] equals t2["Branch"] &
            t1["AccountNumber"] equals t2["AccountNumber"]
         select new { Branch = t1["Branch"], AccountNumber = t2["AccountNumber"] };

我有两个问题:

  1. &不工作,我怎么做两个相等?
  2. 我想将两个表一起返回,而不必指定每一列。我有很多,我没有在上面列出它们。那可能吗?
  3. 感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

这种方法不需要

&运营商。您应该将查询重写为

var collection = from t1 in iom.DataTable.AsEnumerable()
         join t2 in iob.DataTable.AsEnumerable()
            on new { Branch = t1["Branch"], AccountNumber = t1["AccountNumber"] } equals 
             new { Branch = t2["Branch"], AccountNumber = t2["AccountNumber"] }
         select new { Branch = t1["Branch"], AccountNumber = t2["AccountNumber"] };