2

我正在做一个项目,其中包含两个到 dataTables 的 csv 文件,我想加入它们并将其分配给一个新的。只有 BIN 或 BBL 列是固定的,其他列会有所不同。我不太了解 linq,所以我需要这个帮助。解决方案如下:

    if radioButton1.checked{
    join all the columns in dt1; //dt1 = dt1 + dt2
    }
    else if radioButton2.checked{
    join all the columns in dt2; //dt2 = dt2 + dt1
    }

现在,对于 radioButton1,如果 dt1 和 dt2 具有相同的列,例如 BBL,并且在 dt1 中有 4 行 BBL,并且在 dt2 中有 5 行,其中前 4 个匹配项存在于 dt1 但第 5 个匹配项是新的,那么它将添加dt1 中的这一行。对于 radioButton2,反之亦然。

我认为以下类型的 sql 查询可能会有所帮助,但不确定它是否能正确解决:

SELECT * FROM dt1,dt2 GROUP BY BBL

我确信它会在 dt1 和 dt2 中添加常见的,但是如果 dt2 有一个额外的行,那么它是否可以工作,我不知道。

请帮帮我,我需要你们认真的关注。在过去的四天里,我一直被这个问题困扰,但没有解决方案。您的帮助将不胜感激。提前致谢。-萨凡。

4

1 回答 1

1

看看这个

var ret = from x in dt1.AsEnumerable()
    join y in dt2.AsEnumerable() on x.Field<int>("ID") equals y.Field<int>("ID") into z
    from y in z.DefaultIfEmpty()
    select new
    {
        ID = x.Field<int>("ID"),
        VAL = x.Field<string>("VAL")
     };
于 2012-07-20T18:33:43.957 回答