【发布时间】:2017-10-04 19:26:40
【问题描述】:
TABLE SCHEMA 我在解决 linq 到数据集的查询时遇到问题;我必须在两个数据表之间进行简单的左连接,但我事先不知道数据表 B 中的确切列数(A,B,C ...?)所以我想选择所有列;我找到了以下链接
select-all-columns-after-join-in-linq
select-all-columns-for-all-tables-in-join-linq-join
Dim Query = From A In TableA _
Join B In TableB _
On A("COD") Equals B("COD") _
Select New With {A, B}
Dim TableC As DataTable = Query.CopyToDataTable()
我也试过了
Select New With {.DAT = A.ItemArray.Concat(P.ItemArray).ToArray()}).ToList
还有更多,但我未能将查询结果带入新数据表;我收到类型转换错误,或者我不明白如何将两个单独表中提供的查询结果合并到一个数据表中。
【问题讨论】:
-
您希望在
datatable两列A("COD")和B("COD")中发生什么? -
没什么,只是为了不在 [Select New With {.....] 语句中放入要从表 B 中选择的各个列,因为我无法确定表中存在多少列B,我不会使用动态 linq(所以我决定模糊地选择所有列)请参阅 TABLE SCHEMA
-
所以您的 TABLE SCHEMA 显示列
COD两次,但这在DataTable中是不允许的。 -
true,有一种简单的方法可以避免重复 COD 列,并且仍然将表 B 中的所有剩余列捆绑在一起,甚至事先不知道列的名称?在表 B 上,我表示 A B C,但它可以是 L M N O 或任何其他序列
标签: vb.net linq join datatable