Supprimer toutes les lignes dans un datatable
J'ai besoin de supprimer toutes les lignes dans un datatable (ADO.net). Je ne veux pas utiliser Foreach ici.
Dans un seul comment puis-je supprimer toutes les lignes.
Puis j'ai besoin de mettre à jour la table de données à une base de données.
Note: j'ai essayé de dataset.tables[0].les lignes.clair et l'ensemble de données.clair, mais les deux ne sont pas de travail
Aussi, je ne veux pas utiliser sql de la requête de suppression.
Poste autre que cela, si vous en mesure de fournir la réponse.
Claire devrait fonctionner, de sorte que vous avez peut-être une exception lorsque vous essayez (orphelin enfant relations)
Pouvons-nous voir tout votre code s'il vous plaît?
Effacer supprime les lignes, il ne les supprime pas. Je pense en boucle sur eux et de les supprimer un par un, est la seule option.
Selon msdn.microsoft.com/en-us/library/... "Toutes les lignes de toutes les tables sont supprimés. Une exception est générée si la table a forcée enfant relations qui causerait des lignes enfants orphelin."
Il y a une différence entre la suppression de lignes dans une Table de données et de les supprimer. La suppression des drapeaux comme supprimé de sorte que lorsque vous appliquez des modifications à votre base de données, la db lignes sont supprimées. Leur suppression (avec Clear()) faut juste sortir de la mémoire DataTable.
Pouvons-nous voir tout votre code s'il vous plaît?
Effacer supprime les lignes, il ne les supprime pas. Je pense en boucle sur eux et de les supprimer un par un, est la seule option.
Selon msdn.microsoft.com/en-us/library/... "Toutes les lignes de toutes les tables sont supprimés. Une exception est générée si la table a forcée enfant relations qui causerait des lignes enfants orphelin."
Il y a une différence entre la suppression de lignes dans une Table de données et de les supprimer. La suppression des drapeaux comme supprimé de sorte que lorsque vous appliquez des modifications à votre base de données, la db lignes sont supprimées. Leur suppression (avec Clear()) faut juste sortir de la mémoire DataTable.
OriginalL'auteur web dunia | 2009-06-05
Vous devez vous connecter pour publier un commentaire.
'foreach' n'est pas une réponse simple à cette question -- vous rencontrez le problème où l'agent recenseur n'est plus valide pour un changement de la collection.
Le souci ici est que le Supprimer() le comportement est différent pour une ligne dans DataRowState.Ajouté vs Inchangée ou Modifiés. Si vous Supprimez() un ajout de ligne, il ne suffit de le retirer de la collection depuis le magasin de données, vraisemblablement, n'a jamais su à ce sujet de toute façon. Delete() sur un libor ou ligne modifiée simplement la marque comme supprimés, comme d'autres l'ont indiqué.
J'ai donc fini par mettre en place une méthode d'extension de ce type à poignée suppression de toutes les lignes. Si quelqu'un a des meilleures solutions, ce serait génial.
OriginalL'auteur Clyde
Je vais reposter mon commentaire ici, dans le cas où vous voulez pour clore cette question, parce que je ne crois pas qu'il est possible de "supprimer en vrac" toutes les lignes dans une Table de données:
Vous aurez à effectuer une itération sur les lignes et les supprimer un par un. C'est seulement un couple de lignes de code.
OriginalL'auteur Matt Hamilton
cela fonctionne.
OriginalL'auteur Joel
cela fonctionne avec une expression lambda:
Mais ici, vous devez utiliser FOREACH de Lambda.
Heureusement, vous avez unique ligne ici pour supprimer votre stuff de datatable 🙂
OriginalL'auteur Muhammad Adnan
fonctionne pour moi
OriginalL'auteur alexey
DataTable=Datatable.Clone;
Cela devrait le faire. Cela va copier la structure de la table, mais pas les données. (Datatable.Copie le faire)
Il répond toujours à la question, cependant.
OriginalL'auteur Hooloovoo