Comparez et supprimer datatable ligne à l'aide de C#:

J'ai deux tables comme DTTable1 et DTTable2. Il a les registres suivants.

DTTable1:

    ItemID     Specification    Amount
   ---------  ---------------  ---------
      1             A             10
      1             B             20
      1             C             30

DTTable1:

    ItemID     Specification    Amount
   ---------  ---------------  ---------
      1             A             10
      1             B             20
      1             C             30
      2             A             10
      2             B             20
      3             A             10
      3             B             20

Ici je veux comparer ces deux tables. Si DTTable1 enregistrements présents dans DTTable2(ne considérer que ItemID) puis supprimer les lignes correspondantes qui a la ItemID même que DTTable1.

J'ai essayé foreach et forloop.
En Utilisant ForEach:

   foreach (DataRow DR in DTTable2.Rows)
   {
      if (DR["ItemID"].ToString() == DTTable1.Rows[0]["ItemID"].ToString())
      {
           DTTable2.Rows.Remove(DR);                            
      }
   }
   DTTable2.AcceptChanges();

Il a montré l'erreur,
"La Collection a été modifiée; l'énumération opération risque de ne pas exécuter". Je l'ai donc utilisé Pour la Boucle, Elle aussi n'est pas donné le résultat souhaité.

À L'Aide De La Boucle:

   for (int i = 0; i < DTTable2.Rows.Count; i++)
   {
       if (DTTable2.Rows[i]["ItemID"].ToString() == DTTable1.Rows[0]["ItemID"].ToString())
       {
           DTTable2.Rows.RemoveAt(i);
       }
   }
   DTTable2.AcceptChanges();

Mais parfois, la seconde ligne permet de ne pas supprimer de la table. Je reçois la finale de la DataTable que

    ItemID     Specification    Amount
   ---------  ---------------  ---------
      1             B             20
      2             A             10
      2             B             20
      3             A             10
      3             B             20

Comment résoudre ce problème? Quelle est la méthode la plus simple pour faire cela?

Êtes-vous à la sélection de ces enregistrements de la base de données, si oui, je peux vous aider avec la requête qui permet de sélectionner uniquement les enregistrements requis car il est beaucoup plus efficace de le faire avec sql

OriginalL'auteur thevan | 2012-10-10