2012-11-29 5 views
-1

Possible en double:
Comparing two datatable and getting the duplicate valuesÉvitez les valeurs en double en comparant deux datatable

J'ai deux DataTable t1 et 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. 

Je peux tout faire facilement.

Mais le problème est, je dois savoir si t2 a plus de 1 même sparte_id avec une valeur sparte différente. Si je reçois quelque chose comme ça, je ne dois pas mettre à jour le champ SPARTE de t1 à travers ce SPARTE_ID ET Avoir à faire une liste de ces sparte_id et sparte.

Je serai heureux si quelqu'un peut dire Comment pourrais-je obtenir les valeurs avec cette condition? J'utilise VS-2010 sur .NetFramework 3.5.

** Aucune d'entre elles n'est une clé primaire ou une clé unique.

** Si vous ne comprenez rien, veuillez me le demander.

+0

S'il vous plaît modifier votre question plus tôt. Ne postez pas la même question. –

+0

puis-je supprimer une de mes questions? –

Répondre

0

est ici un moyen de trouver vos combinaisons ambigous 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); 
Questions connexes