【发布时间】:2014-12-12 21:17:55
【问题描述】:
我有两个数据表,我想显示行。如果两个数据表具有相同的值,则在所有列中标记X,否则选择具有最高值的列(例如:DT1:10,DT2:5)
数据表1
id Name Weight
1 Ship 500
2 Train 600
3 Plane 700
4 Car 800
数据表2
id Name Weight
1 Ship 500
3 Plane 600
4 Car 200
我希望结果是:
数据表3
id Name Weight Datatable1 Datatable2
1 Ship 500 X X
2 Train 600 X
3 Plane 700 X X
4 Car 800 X
我尝试了以下方法:-
DataTable Datatable3 = (from a in Datatable1.AsEnumerable()
join b in Datatable2.AsEnumerable()
on a["Name"].ToString() equals b["Name"].ToString()
a["Weight"].ToString() equals b["Weight"].ToString() into g
where g.Count() != 1 select a).CopyToDataTable();
dataGrid1.ItemsSource = Datatable3.DefaultView;
请帮助我。提前致谢
【问题讨论】:
-
你尝试了什么?
-
感谢您的帮助。我试过下面的 DataTable Datatable3 = (from a in Datatable1.AsEnumerable() join b in Datatable2.AsEnumerable() on a["Name"].ToString() equals b["Name"].ToString() a[" Weight"].ToString() 等于 b["Weight"].ToString() 到 g 其中 g.Count() != 1 选择 a).CopyToDataTable(); dataGrid1.ItemsSource = Datatable3.DefaultView;
-
您可以改为编辑问题并包含您的代码。
-
您有机会查看我的答案吗?让我知道这是否是您所期望的。一个快速查询,我认为在上面的 DataTable3 中,列
Datatable2不应该有 id 3 的 X 对吗?自 700 != 600 :) -
我到现在还没有得到输出,仍然发现一些问题。但在这种情况下,我们需要用(X) 向各个数据表(即700)显示最大大小。带有“X”表示平面的 Datatable1。