-1

重複の可能性:
2 つのデータテーブルを比較し、重複する値を取得する

2 つの 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 に異なる sparte 値を持つ同じ sparte_id が複数あるかどうかを確認する必要があることです。このようなものを取得した場合、この SPARTE_ID で t1 の SPARTE フィールドを更新してはならず、これらの sparte_id のリストを作成して、そこにスパルトを作成する必要があります。

この条件で値を取得するにはどうすればよいですか?.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 に答える