IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

probleme Delete dataset datagridview


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Par défaut probleme Delete dataset datagridview
    Bonjour,

    j'ai un soucis pour deleter une row ds ma base via un dataset(afficher ds une datagridview).
    J'ai le message :"Impossible d'accéder via la ligne aux informations de ligne supprimées." au moment d'executer la requete.

    l'insert fonctionne nickel.

    pour supprimer la row du dataset ds ma winform(j'ai bien fait un delete, pas un remove et je ne fais pas accepchanges avant de valider):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            If DgvGroupe.CurrentRow IsNot Nothing Then
     
                ds.Tables(0).Rows(DgvGroupe.CurrentRow.Index).Delete()
     
            End If
    pour valider les modif (on peut ajouter, supprimer des lignes du datagridview avant de valider définitivement):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    'si le dataset a été modifié
            If ds.HasChanges Then
                If MsgBox("La liste a été modifiée." + vbCrLf + _
                          "Etes vous sur de vouloir enregistrer ?", _
                          MsgBoxStyle.YesNo, "Valider") = MsgBoxResult.Yes Then
     
                    If ds.Tables(0).GetChanges IsNot Nothing Then
     
                        'insert, delete ou update les groupes en fonction de l'état de la row (RowState) ds la table du dataset
                        grpData.SaveGroupe(ds.Tables(0))
     
                    End If
                End If
            End If

    la fonction de sauvegarde qui fait un "tri" en fonction de l'état de chaque row (j'ai bien le rowstate sur deleted mais pas accés aux champs):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
            Public Function SaveGroupe(ByVal dtGroupe As DataTable) As Boolean
    
                'pour chaque ligne de la table des groupes
                For Each drw As DataRow In dtGroupe.Rows
    
                    'suivant le cas de la ligne
                    Select Case drw.RowState
    
                        Case DataRowState.Added 'ajout
    
                            SqlHelper.InsertData("insert into tb_grp (grp_code, grp_libelle) values ('" + drw.Item(0).ToString + "', '" + drw.Item(1).ToString + "')")
    
                        Case DataRowState.Deleted 'Suppression
    
                            SqlHelper.DeleteData("delete from tb_grp where grp_code= '" + drw.Item(0).ToString + "'")
    
                        Case DataRowState.Modified 'Modification
    
                            'update..
    
                        Case DataRowState.Unchanged 'Inchangée
                            'on ne fait rien
    
                    End Select
    
                Next
                Return True
            End Function
    J'ai cherché sur le net et sur les forums sans succés concernant mon cas. Il doit y avoir une "astuce" pour le delete que je ne trouve pas.

    Merci d'avance pour vos réponses et autres éclaircicements.

  2. #2
    Membre averti
    Inscrit en
    Août 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 25
    Par défaut j'ai trouvé
    Ouf !!

    pour ceux que cela intéresse, il fallait juste rajouter DataRowVersion.Original

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Case DataRowState.Deleted 'Suppression
     
            SqlHelper.DeleteData("delete from tb_grp where grp_code= '" + CStr(drw(0, DataRowVersion.Original))+ "'")

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme delete hibernate many-to-many
    Par imanoual dans le forum Hibernate
    Réponses: 1
    Dernier message: 21/10/2007, 21h56
  2. Probleme d'affectation dataGridView
    Par celtic180873 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 03/08/2007, 14h04
  3. Update dataset Datagridview
    Par flatron dans le forum Windows Forms
    Réponses: 6
    Dernier message: 20/07/2007, 20h43
  4. Probleme de dataset ..
    Par benjer dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 12/03/2007, 10h26
  5. [c#]Nouveau probleme avec dataset et combobox
    Par misa dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/05/2006, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo