PB : Suppression de rows dans un Dataset qui n'affecte pas GetChanges :-(
2 réponses
Cédric Girard
Bonjour et meilleurs voeux à toutes et à tous.
Je rencontre un problème bizarre dans un Dataset dans lequel je supprime des
lignes (dans son unique table).
Cette table est mappée à une grille dont la seconde colonne contient un
champs booléen qui peut être mis à VRAI par l'utilisateur si la ligne doit
être supprimée.
Sur validation de la "saisie" je fais donc une boucle de la dernière ligne à
la première (pour éviter le décalage des n° de lignes lors de la
suppression) et procède à la suppression des lignes marquées. De visu à
l'écran tout se passe bien (les lignes sont bien supprimées dans la grille)
Le hic c'est que cette suppression n'affecte pas le Dataset (aucune ligne
détectée comme effacée par HasChanges !)
Voici mon code :
Dim _Rw As DataRow 'Objet ligne de
données
Dim _NbRows As Int32 = dsTrav.Tables(0).Rows.Count - 1 'Nombre de
lignes
For _Cpt As Int32 = _NbRows To 0 Step -1
'De la dernière à la première pour éviter les pbs d'indice décalés
_Rw = dsTrav.Tables(0).Rows(_Cpt)
If _Rw(1) Then
'Marquée à la suppression dont acte
dsTrav.Tables(0).Rows(_Cpt).Delete()
End If
Next _Cpt
Auriez-vous une explication ? Je peux assez facilement contourner le
problème autrement mais c'est bien dommage de ne pouvoir utiliser cette
fonctionnalités !!!
Je souhaite les lignes supprimées grâce au Dataset obtenable avec
GetChanges(DataRowState.Deleted) pour un traitement annexe, c'est impératif.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Chris
Cédric Girard a écrit :
Bonjour et meilleurs voeux à toutes et à tous.
Je rencontre un problème bizarre dans un Dataset dans lequel je supprime des lignes (dans son unique table).
Cette table est mappée à une grille dont la seconde colonne contient un champs booléen qui peut être mis à VRAI par l'utilisateur si la ligne doit être supprimée.
Sur validation de la "saisie" je fais donc une boucle de la dernière ligne à la première (pour éviter le décalage des n° de lignes lors de la suppression) et procède à la suppression des lignes marquées. De visu à l'écran tout se passe bien (les lignes sont bien supprimées dans la grille)
Le hic c'est que cette suppression n'affecte pas le Dataset (aucune ligne détectée comme effacée par HasChanges !)
Voici mon code :
Dim _Rw As DataRow 'Objet ligne de données Dim _NbRows As Int32 = dsTrav.Tables(0).Rows.Count - 1 'Nombre de lignes For _Cpt As Int32 = _NbRows To 0 Step -1 'De la dernière à la première pour éviter les pbs d'indice décalés _Rw = dsTrav.Tables(0).Rows(_Cpt) If _Rw(1) Then 'Marquée à la suppression dont acte dsTrav.Tables(0).Rows(_Cpt).Delete() End If Next _Cpt
Auriez-vous une explication ? Je peux assez facilement contourner le problème autrement mais c'est bien dommage de ne pouvoir utiliser cette fonctionnalités !!!
Je souhaite les lignes supprimées grâce au Dataset obtenable avec GetChanges(DataRowState.Deleted) pour un traitement annexe, c'est impératif.
essaie de mettre MonDataSet.AcceptChanges apres MonDataset.Delete
Cédric Girard a écrit :
Bonjour et meilleurs voeux à toutes et à tous.
Je rencontre un problème bizarre dans un Dataset dans lequel je supprime des
lignes (dans son unique table).
Cette table est mappée à une grille dont la seconde colonne contient un
champs booléen qui peut être mis à VRAI par l'utilisateur si la ligne doit
être supprimée.
Sur validation de la "saisie" je fais donc une boucle de la dernière ligne à
la première (pour éviter le décalage des n° de lignes lors de la
suppression) et procède à la suppression des lignes marquées. De visu à
l'écran tout se passe bien (les lignes sont bien supprimées dans la grille)
Le hic c'est que cette suppression n'affecte pas le Dataset (aucune ligne
détectée comme effacée par HasChanges !)
Voici mon code :
Dim _Rw As DataRow 'Objet ligne de
données
Dim _NbRows As Int32 = dsTrav.Tables(0).Rows.Count - 1 'Nombre de
lignes
For _Cpt As Int32 = _NbRows To 0 Step -1
'De la dernière à la première pour éviter les pbs d'indice décalés
_Rw = dsTrav.Tables(0).Rows(_Cpt)
If _Rw(1) Then
'Marquée à la suppression dont acte
dsTrav.Tables(0).Rows(_Cpt).Delete()
End If
Next _Cpt
Auriez-vous une explication ? Je peux assez facilement contourner le
problème autrement mais c'est bien dommage de ne pouvoir utiliser cette
fonctionnalités !!!
Je souhaite les lignes supprimées grâce au Dataset obtenable avec
GetChanges(DataRowState.Deleted) pour un traitement annexe, c'est impératif.
essaie de mettre MonDataSet.AcceptChanges apres MonDataset.Delete
Je rencontre un problème bizarre dans un Dataset dans lequel je supprime des lignes (dans son unique table).
Cette table est mappée à une grille dont la seconde colonne contient un champs booléen qui peut être mis à VRAI par l'utilisateur si la ligne doit être supprimée.
Sur validation de la "saisie" je fais donc une boucle de la dernière ligne à la première (pour éviter le décalage des n° de lignes lors de la suppression) et procède à la suppression des lignes marquées. De visu à l'écran tout se passe bien (les lignes sont bien supprimées dans la grille)
Le hic c'est que cette suppression n'affecte pas le Dataset (aucune ligne détectée comme effacée par HasChanges !)
Voici mon code :
Dim _Rw As DataRow 'Objet ligne de données Dim _NbRows As Int32 = dsTrav.Tables(0).Rows.Count - 1 'Nombre de lignes For _Cpt As Int32 = _NbRows To 0 Step -1 'De la dernière à la première pour éviter les pbs d'indice décalés _Rw = dsTrav.Tables(0).Rows(_Cpt) If _Rw(1) Then 'Marquée à la suppression dont acte dsTrav.Tables(0).Rows(_Cpt).Delete() End If Next _Cpt
Auriez-vous une explication ? Je peux assez facilement contourner le problème autrement mais c'est bien dommage de ne pouvoir utiliser cette fonctionnalités !!!
Je souhaite les lignes supprimées grâce au Dataset obtenable avec GetChanges(DataRowState.Deleted) pour un traitement annexe, c'est impératif.
essaie de mettre MonDataSet.AcceptChanges apres MonDataset.Delete
Cédric Girard
Non, je ne peux (et ne veux) pas !
Car le but de ma manoeuvre, c'est justement de pouvoir ensuite accéder aux lignes supprimées via GetChanges !!! Si je fais un "Acceptchanges" mon GetChanges ne renverra plus rien (dixit la doc DotNet)
Je rencontre un problème bizarre dans un Dataset dans lequel je supprime des lignes (dans son unique table).
Cette table est mappée à une grille dont la seconde colonne contient un champs booléen qui peut être mis à VRAI par l'utilisateur si la ligne doit être supprimée.
Sur validation de la "saisie" je fais donc une boucle de la dernière ligne à la première (pour éviter le décalage des n° de lignes lors de la suppression) et procède à la suppression des lignes marquées. De visu à l'écran tout se passe bien (les lignes sont bien supprimées dans la grille)
Le hic c'est que cette suppression n'affecte pas le Dataset (aucune ligne détectée comme effacée par HasChanges !)
Voici mon code :
Dim _Rw As DataRow 'Objet ligne de données Dim _NbRows As Int32 = dsTrav.Tables(0).Rows.Count - 1 'Nombre de lignes For _Cpt As Int32 = _NbRows To 0 Step -1 'De la dernière à la première pour éviter les pbs d'indice décalés _Rw = dsTrav.Tables(0).Rows(_Cpt) If _Rw(1) Then 'Marquée à la suppression dont acte dsTrav.Tables(0).Rows(_Cpt).Delete() End If Next _Cpt
Auriez-vous une explication ? Je peux assez facilement contourner le problème autrement mais c'est bien dommage de ne pouvoir utiliser cette fonctionnalités !!!
Je souhaite les lignes supprimées grâce au Dataset obtenable avec GetChanges(DataRowState.Deleted) pour un traitement annexe, c'est impératif.
essaie de mettre MonDataSet.AcceptChanges apres MonDataset.Delete
Non, je ne peux (et ne veux) pas !
Car le but de ma manoeuvre, c'est justement de pouvoir ensuite accéder aux
lignes supprimées via GetChanges !!! Si je fais un "Acceptchanges" mon
GetChanges ne renverra plus rien (dixit la doc DotNet)
"Chris" <user@domain.invalid> a écrit dans le message de news:
eGtwkgN9EHA.3076@TK2MSFTNGP15.phx.gbl...
Cédric Girard a écrit :
Bonjour et meilleurs voeux à toutes et à tous.
Je rencontre un problème bizarre dans un Dataset dans lequel je supprime
des lignes (dans son unique table).
Cette table est mappée à une grille dont la seconde colonne contient un
champs booléen qui peut être mis à VRAI par l'utilisateur si la ligne
doit être supprimée.
Sur validation de la "saisie" je fais donc une boucle de la dernière
ligne à la première (pour éviter le décalage des n° de lignes lors de la
suppression) et procède à la suppression des lignes marquées. De visu à
l'écran tout se passe bien (les lignes sont bien supprimées dans la
grille)
Le hic c'est que cette suppression n'affecte pas le Dataset (aucune ligne
détectée comme effacée par HasChanges !)
Voici mon code :
Dim _Rw As DataRow 'Objet ligne
de données
Dim _NbRows As Int32 = dsTrav.Tables(0).Rows.Count - 1 'Nombre de
lignes
For _Cpt As Int32 = _NbRows To 0 Step -1
'De la dernière à la première pour éviter les pbs d'indice décalés
_Rw = dsTrav.Tables(0).Rows(_Cpt)
If _Rw(1) Then
'Marquée à la suppression dont acte
dsTrav.Tables(0).Rows(_Cpt).Delete()
End If
Next _Cpt
Auriez-vous une explication ? Je peux assez facilement contourner le
problème autrement mais c'est bien dommage de ne pouvoir utiliser cette
fonctionnalités !!!
Je souhaite les lignes supprimées grâce au Dataset obtenable avec
GetChanges(DataRowState.Deleted) pour un traitement annexe, c'est
impératif.
essaie de mettre MonDataSet.AcceptChanges apres MonDataset.Delete
Car le but de ma manoeuvre, c'est justement de pouvoir ensuite accéder aux lignes supprimées via GetChanges !!! Si je fais un "Acceptchanges" mon GetChanges ne renverra plus rien (dixit la doc DotNet)
Je rencontre un problème bizarre dans un Dataset dans lequel je supprime des lignes (dans son unique table).
Cette table est mappée à une grille dont la seconde colonne contient un champs booléen qui peut être mis à VRAI par l'utilisateur si la ligne doit être supprimée.
Sur validation de la "saisie" je fais donc une boucle de la dernière ligne à la première (pour éviter le décalage des n° de lignes lors de la suppression) et procède à la suppression des lignes marquées. De visu à l'écran tout se passe bien (les lignes sont bien supprimées dans la grille)
Le hic c'est que cette suppression n'affecte pas le Dataset (aucune ligne détectée comme effacée par HasChanges !)
Voici mon code :
Dim _Rw As DataRow 'Objet ligne de données Dim _NbRows As Int32 = dsTrav.Tables(0).Rows.Count - 1 'Nombre de lignes For _Cpt As Int32 = _NbRows To 0 Step -1 'De la dernière à la première pour éviter les pbs d'indice décalés _Rw = dsTrav.Tables(0).Rows(_Cpt) If _Rw(1) Then 'Marquée à la suppression dont acte dsTrav.Tables(0).Rows(_Cpt).Delete() End If Next _Cpt
Auriez-vous une explication ? Je peux assez facilement contourner le problème autrement mais c'est bien dommage de ne pouvoir utiliser cette fonctionnalités !!!
Je souhaite les lignes supprimées grâce au Dataset obtenable avec GetChanges(DataRowState.Deleted) pour un traitement annexe, c'est impératif.
essaie de mettre MonDataSet.AcceptChanges apres MonDataset.Delete