【问题标题】:C# - I want to join two data tables. Can you provide me a linq code segment?C# - 我想加入两个数据表。你能给我一个linq代码段吗?
【发布时间】:2012-06-03 19:39:14
【问题描述】:

我正在做一个项目,其中包含两个 csv 文件到 dataTables,我想加入它们并将其分配给一个新的。只有 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 有一个额外的行,那么它是否有效,我不知道。

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

【问题讨论】:

标签: c# sql linq join datatable


【解决方案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")
     };

【讨论】:

    猜你喜欢
    • 2016-08-07
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多