-1

可能重复:
比较两个数据表并获取重复值

我有两个 DataTable t1 和 t2。

t1 has 2 fields (SPARTE_ID, SPARTE both as string)

t2 has 2 fields (sparte_id, sparte both as string)

all rows (value) of SPARTE(of t1) is null

I have to bring values from t2 (if sparte_id == SPARTE_ID) and update t1.

我可以轻松完成所有这些。

但问题是,我必须找出 t2 是否有超过 1 个具有不同 sparte 值的相同 sparte_id。如果我得到这样的东西,我不能在这个 SPARTE_ID 上更新 t1 的 SPARTE 字段,并且必须列出这些 sparte_id 和那里的 sparte。

如果有人能告诉我如何在这种情况下获得值,我会很高兴?我在 .NetFramework 3.5 上使用 VS-2010。

**它们都不是主键或唯一键。

**如果你有什么不明白的请问我。

4

1 回答 1

0

这是一种查找模棱两可的 ID-Sparte 组合的方法:

var t2IdDups = t2.AsEnumerable()
    .GroupBy(r => r.Field<string>("SPARTE_ID"))
    .Where(g => g.Count() > 1);
var t2Ambiguous = t2IdDups
    .Where(g =>
        g.Any(r =>
            r.Field<string>("SPARTE") != g.First().Field<string>("SPARTE")))
    .Select(g => new
    {
        SparteID = g.Key,
        Spartes = string.Join(",", g.Select(r => r.Field<string>("SPARTE")))
    });
foreach (var x in t2Ambiguous)
    Console.WriteLine("ambiguous ID={0} Spartes={1}"
        , x.SparteID, x.Spartes);
于 2012-11-29T14:20:31.360 回答