Vb.net 将来自两个数据集的数据分组
我对数据集有一个问题: 我有两个来自不同服务器的数据集,但它们有相同的列 所以是这样的:Vb.net 将来自两个数据集的数据分组,vb.net,linq,dataset,linq-to-dataset,Vb.net,Linq,Dataset,Linq To Dataset,我对数据集有一个问题: 我有两个来自不同服务器的数据集,但它们有相同的列 所以是这样的: asset description make jobtype lhjan imjan lhfeb lhfeb ... lhdec imdec 0001 mine ik Acc 0 10 0 0 10 10 0002 yours ic Over 0 0 0 0 1
asset description make jobtype lhjan imjan lhfeb lhfeb ... lhdec imdec
0001 mine ik Acc 0 10 0 0 10 10
0002 yours ic Over 0 0 0 0 10 0
第一个数据集:
asset description make jobtype jan feb ... dec
0001 mine ik Acc 0 0 10
0002 yours ic Over 0 0 10
第二个数据集:
asset description make jobtype jan feb ... dec
0001 mine ik Acc 10 0 10
0002 yours ic Gen 0 0 0
但我想将2个数据集合并成这样一个:
asset description make jobtype lhjan imjan lhfeb lhfeb ... lhdec imdec
0001 mine ik Acc 0 10 0 0 10 10
0002 yours ic Over 0 0 0 0 10 0
因此,一个数据库中的所有数据都与第二个数据库中具有相同资产和相同作业类型的数据相结合
我试过林克,但我不能达到我想要的程度。
我正在使用vb.net framework 3.5
你能帮我吗
Julien我只想确保数据源1和2实际上是数据表。我的回答就是这样描述的。我也会用C语言来描述它,尽管语法差别不大。您需要交替选择混合字段。您还需要根据需要调整数据类型
from dt1 in ds["datatable1"].AsEnumerable()
join dt2 in ds["datatable2"].AsEnumerable() on
new { asset = dt1.Field<string>("asset"), jobtype = dt1.Field<string>("jobtype") } equals
new { asset = dt2.Field<string>("asset"), jobtype = dt2.Field<string>("jobtype") }
select new
{
asset = dt1.Field<string>("asset"),
description = dt1.Field<string>("description"),
make = dt1.Field<string>("make"),
...
lhjan = dt1.Field<int>("jan"),
imjan = dt2.Field<int>("jan"),
lhfeb = dt1.Field<int>("feb"),
imfeb = dt2.Field<int>("feb"),
....
};
如果您真的只想将两者连接起来,那么可以在2个不同的adapter.fill中使用相同的数据集
如果在第二次填充之前不使用新数据集,则2将被合并。我明天将测试它,但我想我已经尝试过了。明天我会给出我的反馈,谢谢。根据资产/作业类型组合的独特性,您可能需要一个.Distinct结尾。只需将查询表达式括在括号中,并在其上调用.Distinct:var query=from。。。参加选择。不同