Je ne sais pas que cela peut être fait d'une manière directe. Il n'y a pas de commande delete sur le datatable qui va le faire.
Vous pourriez essayer quelque chose comme ça. Vous sélectionnez les enregistrements que vous souhaitez conserver dans une table temporaire, effacez la table d'origine, puis fusionnez la table temporaire dans l'original.
Dim dtTemp As DataTable = ds.Tables("YourTable").Select("RecordsToKeep='This'").CopyToDataTable
ds.Tables("YourTable").Clear()
ds.Tables("YourTable").Merge(dtTemp)
dtTemp.Dispose()
C'est la meilleure réponse à la question que je peux penser. Il semble que vous utilisiez le datatable d'une manière inhabituelle. Il est généralement préférable de ne pas remplir les enregistrements ou de les filtrer lorsque vous enregistrez le contenu à sa destination. Qu'il s'agisse d'un fichier XML, SQL ou autre.
Certainement, la méthode de la boucle serait la plus efficace. Ce n'est pas la méthode la plus rapide, mais pour seulement 4K lignes, c'est probablement assez bon.
Comment déterminez-vous qui 10 00 des 4000 lignes à supprimer? – JeffO
Voilà ma question est, est-il un moyen de déterminer les lignes pour la suppression? – KuldipMCA
Pourriez-vous ajouter à votre question quelle classe .NET vous utilisez pour représenter les données en mémoire? Est-ce DataSet ou une autre classe? Ou je peux reformuler la question: utilisez-vous SqlDataAdapter ou LinkToSql Ou Entity Framework pour accéder à la base de données? Pour chaque façon, on peut écrire une solution, mais je ne veux pas écrire des versions différentes du code si vous n'en avez besoin que d'une seule. Un petit exemple de table de base de données (2-3 champs) pourrait aussi être très bon, alors je vais utiliser ces champs dans mon exemple de code. – Oleg