Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将来自两个数据集的数据分组_Vb.net_Linq_Dataset_Linq To Dataset - Fatal编程技术网

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。。。参加选择。不同