Vérifier si la ligne existe dans la DataTable?
J'ai un datatable et une ligne. Je veux importer la ligne de la datatable seulement si il n'existe pas dans la datatable.
Comment puis-je le faire?
Avez-vous une clé dans la ligne (comme vous)?
Non, je n'en avez pas, n'est pas là une méthode comme "contient" ou "existe"?
Il a Contient, mais qui fonctionnera uniquement avec les tables qui ont des PK.
Je suppose que vous avez à comparer toutes les valeurs
oui, je veux comparer toutes les valeurs, mais je ne peux pas trouver un moyen facile et rapide de le faire
Non, je n'en avez pas, n'est pas là une méthode comme "contient" ou "existe"?
Il a Contient, mais qui fonctionnera uniquement avec les tables qui ont des PK.
Je suppose que vous avez à comparer toutes les valeurs
oui, je veux comparer toutes les valeurs, mais je ne peux pas trouver un moyen facile et rapide de le faire
OriginalL'auteur Curious | 2014-09-28
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez un typée
DataSet
, I. e. déclarée au moment de la conception, de la "linq Contient la méthode" prend un typéeDataRow
. La valeur par défautIEqualityComparer
permettra de comparer toutes les valeurs de laDataRow
. (Qui est normalement inutile, car vous devez avoir une clé définie).Eh bien, le "LINQ contient la méthode" mentionnée ci-dessus est déjà une méthode d'extension. SI votre extension était en train de faire quelque chose d'utile, il POURRAIT avoir une certaine valeur pour la MME mise en œuvre de l'extension.
J'ajouterais.. vous devez avoir défini une clé primaire sur la table, même si vous n'utilisez pas un dataset typé.
OriginalL'auteur S22
si vous souhaitez vérifier tous les
cells
dans unDataRow
, vous pouvez essayer cette fonction:OriginalL'auteur Mehdi Khademloo
Vous pouvez utiliser LINQ pour vérifier si la ligne est présente dans la datatable. Suivre cette solution, et de remplacer "id" avec votre ligne de la clé primaire, qui vous permet d'identifier de manière unique une ligne dans une table.
OriginalL'auteur Arindam Nayak
vous pouvez utiliser
Contains
comme ci-dessousOriginalL'auteur Vijay Kumbhoje
Essayé toutes les réponses ici, mais n'a pas fonctionné, donc j'ai fait quelque chose pour moi-même qui fonctionne dans mon cas. Le code est assez simple, il vérifie si la ligne que vous souhaitez ajouter existe déjà dans la datatable - si elle n'existe pas dans la table de données, ajouter.
OriginalL'auteur xlimit91
OriginalL'auteur FahimFatehi
Vous devez vérifier ligne existence en comparant les clés primaires:
Raison en est,
DataRow
que vous essayez de vérifier sur desDataTable
est, dans la vie réelle scénarios, différents instance de la classe par rapport à laDataRaw
dans le tableau, même quand mêmeDataRaw
existe déjà dans leDataTable
. D'habitude .NET de l'égalité-comparaison ne fonctionne pas correctement dans ce scénario. Qui comprendDataTable.Contains(...)
méthode.De bien vérifier
DataRaw
existence dans la table, la clé primaire étant donnéDataRaw
doit être recherché dans le tableau.OriginalL'auteur Nenad