Comment faire pour supprimer plusieurs lignes de datatable dans VB.NET 2008?
Comment supprimer plusieurs lignes de datatable dans VB.NET 2008 sans boucle?
- Je ne veux pas supprimer de la base de données.
- Je veux supprimer dans le local la table de données.
- Je sais que le
Select
méthode et aussiRemove
et retirez à la méthode de trop. Mais qui a besoin de boucle pour supprimer les lignes de la table de données.
J'ai 40000 lignes et je veux supprimer la sélection de 1000 lignes à partir des données de la table.
Comment allez-vous déterminer qui 1000 de 4000 lignes à supprimer?
Ma question est,est-il possible de déterminer les lignes pour la suppression ?
Pourriez-vous ajouter à votre question .NET classe que vous l'utilisez pour représenter les données dans la mémoire? Est-il DataSet ou d'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? De toute façon, on peut écrire une solution, mais je ne veux pas écrire de différentes versions du code, si vous avez besoin d'un seul. Un petit exemple de table de base de données (2-3 champs) pourrait être également très bon, alors je vais être utiliser ces champs dans mon exemple de code.
c'est dataset ou datatable qui j'ai été en utilisant.
Pourquoi voulez-vous supprimer sans boucle? Est-ce un problème de performance? Cause il ne dure que quelques millisecondes pour supprimer 1000 lignes à partir d'un 4000 lignes-datatable.
Ma question est,est-il possible de déterminer les lignes pour la suppression ?
Pourriez-vous ajouter à votre question .NET classe que vous l'utilisez pour représenter les données dans la mémoire? Est-il DataSet ou d'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? De toute façon, on peut écrire une solution, mais je ne veux pas écrire de différentes versions du code, si vous avez besoin d'un seul. Un petit exemple de table de base de données (2-3 champs) pourrait être également très bon, alors je vais être utiliser ces champs dans mon exemple de code.
c'est dataset ou datatable qui j'ai été en utilisant.
Pourquoi voulez-vous supprimer sans boucle? Est-ce un problème de performance? Cause il ne dure que quelques millisecondes pour supprimer 1000 lignes à partir d'un 4000 lignes-datatable.
OriginalL'auteur KuldipMCA | 2010-05-06
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas qui cela peut être fait d'une manière simple. Il n'y a pas de commande supprimer dans le datatable qui va le faire.
Vous pouvez essayer quelque chose comme cela. Vous sélectionnez les enregistrements que vous souhaitez conserver dans une table temporaire, de vider la table d'origine, puis de fusionner la table temp de retour dans l'original.
C'est la meilleure réponse à la question je pense. Il semble que vous utilisez peut-être la datatable dans une manière inhabituelle. Vous êtes généralement préférable de ne pas peupler les enregistrements pour commencer, de filtrage ou de eux lorsque vous enregistrez le contenu de leur destination. Que ce soit un fichier XML, SQL, ou quoi que ce soit.
Certainement, la boucle de la méthode la plus efficace. Ce n'est probablement pas la méthode la plus rapide, mais pour seulement 4K lignes, c'est probablement suffisant.
Oui, mais avant que vous avez effacé de la table, vous avez copié les dossiers que vous voulez garder une table temp. Après le clair, vous "fusionner" les enregistrements de la table temporaire (39000 vous souhaitez conserver), de retour dans l'original (vide) de la table. Le résultat final est que vous avez supprimé les 1000 dossiers sans avoir à écrire une boucle.
OriginalL'auteur Bremer
Si vous souhaitez supprimer toutes les lignes, vous pouvez utiliser le
Clear
méthode sur la datatable.Pourquoi ne pouvez-vous pas utiliser de boucle?
j'ai beaucoup de dossiers à traiter qu'une seule table.
Et pourquoi vous ne pouvez pas en boucle sur les lignes de la table?
OriginalL'auteur Oded
Ce sont des détails que vous devez inclure dans la question d'origine.
OriginalL'auteur tsilb
Peut-être d'utiliser DataView ferait un truc. Par exemple, vous pouvez filtrer les lignes que vous souhaitez conserver dans DataView, convertir vue de la table et de disposer de table initial. Ensuite, vous avez à votre table avec les lignes dont vous avez besoin.
Laissez-moi savoir si cela fonctionne pour vous.
OriginalL'auteur Anvar
Je ne sais pas si cela sera officiellement qualifier à l'aide d'une boucle, mais voici une solution à l'aide de LINQ:
TBH, je ne suis pas sûr qu'il y est un moyen de le faire sans en boucle sur les lignes à un certain niveau. Soit vous avez une boucle sur les lignes de supprimer ceux que vous ne voulez pas, ou créer une nouvelle table rempli de tout, sauf les lignes que vous ne souhaitez pas. Toutefois, il convient de noter que, même dans le cas d'une version ultérieure NET est probablement en parcourant les lignes de déterminer si la ligne doit être incluse dans le gardien de la table.
OriginalL'auteur Thomas
Je pense que vous devriez utiliser LINQ pour que. Vous obtiendrez datatable à partir de l'ensemble de données et d'écrire une requête LINQ pour supprimer la ligne correspondant à vos critères.
De sorte que vous n'avez pas besoin de boucle.
Voici les quelques liens qui pourraient vous aider.
OriginalL'auteur Jalpesh Vadgama
Utiliser une instruction SQL à l'intérieur d'un ADO.NET objet de commande. Obvoiusly les lignes que vous souhaitez supprimer va avoir quelque chose en commun.
OriginalL'auteur Nathan Fisher
Vous pouvez appeler DeleteAllOnSubmit() si vous utilisez LINQ to SQL. Cependant, cela va soumettre une instruction DELETE pour chaque entité est supprimée, ce qui est très inefficace. Vous pouvez toujours fourche LINQ to SQL, ou l'utilisation d'une procédure stockée.
BTW, vous êtes à la question est très générique. Mon premier réflexe a été de recommander à l'aide d'une clause where.
OriginalL'auteur Aaron Daniels
On peut toujours écrire une procédure stockée pour optimiser ADO.NET entité-cadre ou LINQ to SQL allers-retours dans certains cas. L'inconvénient, c'est que le modèle commence à regarder un peu unconsistent.
Moi aussi, je me demande si il ya une meilleure façon 🙂
OriginalL'auteur Andrew Florko