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

ASP.NET Discussion :

Supression d'enregistrement d'un DataGridView


Sujet :

ASP.NET

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Par défaut Supression d'enregistrement d'un DataGridView
    Bonjour à tous,

    En suivant mon aventure avec le DataGridView, j'ai reussi à faire un ButtonField que marche bien, il bien efface les donnés de ma base, mais il n'efface pas la ligne du DataGridView.

    Il faut rafraichir la page manuellement pour qu'il s'efface du GridView.
    J'ai essayé plusieurs solutions, mais aucune semble à marcher...


    Voilà mes codes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <asp:GridView ID="lstDemandes" runat="server">
        <Columns>
            <asp:ButtonField CommandName="delete" Text="Supprimer" />
        </Columns>
    </asp:GridView>
    Le code-behind:
    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
    If (e.CommandName = "delete") Then
        Dim index As Integer = Convert.ToInt32(e.CommandArgument)
        Dim row As GridViewRow = Me.lstDemandes.Rows(index)
        strSQL = "SELECT T_demande_formation.* " & _
                     "FROM T_demande_formation " & _
                     "WHERE T_demande_formation.Demande=" & row.Cells(1).Text
        ObjetConnection = New OleDbConnection()
        ObjetConnection.ConnectionString = DRHConn
        ObjetConnection.Open()
        ObjetCommand = New OleDbCommand(strSQL)
        ObjetCommand.CommandTimeout = 0
        ObjetDataAdapter = New OleDbDataAdapter(ObjetCommand)
        ObjetCommand.Connection() = ObjetConnection
        ObjetDataAdapter.Fill(ObjetDataSet, "T_demande_formation")
        ObjetDataTable = ObjetDataSet.Tables("T_demande_formation")
        Try
            ObjetDataTable.Rows(0).Delete()
            ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
            ObjetDataAdapter.Update(ObjetDataSet, "T_demande_formation")
            ObjetConnection = Nothing
            ObjetCommand = Nothing
            ObjetDataAdapter = Nothing
            Response.Redirect("frmDemandes.aspx")
        Catch
             Response.Write("Erreur 00000055: Erreur de connexion")
        End Try
    End If
    Je vous remercie en avance...

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Par défaut
    Bonjour.

    Eh bien juste après la mise à jour de ta source de données, il te suffit de relancer le databind:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    lstDemandes.databind()

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Par défaut
    Bonjour et merci pour ta reponse.

    J'ai essayé plusieurs fois mais ça ne marche pas.

    J'ai essayé en mettant entre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ObjetDataAdapter.Update(ObjetDataSet, "T_demande_formation")
    Me.lstDemandes.DataBind
    ObjetConnection = Nothing
    J'ai essayé aussi:
    Mais rien ne marche pas...

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Par défaut
    J'ai trouvé quelque chose:

    Si je mets une MsgBox dans form_Load:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub WebForm7_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        MsgBox("Page load")
        Call RemplirTableau()
    End Sub
    Il supprime la ligne. Sans la MsgBox, il ne supprime pas!!
    Aucune idée??

    EDIT: ça sans avoir mis le DataBind...

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 103
    Par défaut
    Bonjour.

    Une question pourquoi fais-tu une redirection à la fin du TRY? Est-ce vers la même page?

    Cdt.

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Par défaut
    Je ne sais pas pourquoi, mais sans cette redirection (vers la memê page), j'ai l'erreur
    Erreur du serveur dans l'application '/'.
    Lorsque je clique sur "Suprimmer".

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Par défaut
    J'ai fait d'autres essayes:

    Si j'enleve le Response.Redirect("frmDemandes.aspx") dans le Try, memê avec le MsgBox la ligne ne se supprime pas.
    Si j'enleve le MsgBox du Form_load et si je le mets avant Response.Redirect("frmDemandes.aspx") , la ligne est aussi bien supprimée.

    La question devient alors:
    Quelle est le role du MsgBox?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Try
                    ObjetDataTable.Rows(0).Delete()
                    ObjetCommandBuilder = New OleDbCommandBuilder(ObjetDataAdapter)
                    ObjetDataAdapter.Update(ObjetDataSet, "T_demande_formation_bis")
                    ObjetConnection = Nothing
                    ObjetCommand = Nothing
                    ObjetDataAdapter = Nothing
                    MsgBox("1")
                    Response.Redirect("frmDemandes.aspx")
                Catch

  8. #8
    Membre très actif
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    923
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 923
    Par défaut
    Je ne sais toujours pas pourquoi le DataSet n'ai pas marché, mais j'ai resolu en utilisant une requete non select:
    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
    Private Sub lstDemandes_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles lstDemandes.RowCommand
            If (e.CommandName = "delete") Then
                Dim index As Integer = Convert.ToInt32(e.CommandArgument)
                Dim row As GridViewRow = Me.lstDemandes.Rows(index)
                Try
                    Dim connection As OleDbConnection = New OleDbConnection(DRHConn)
                    connection.Open()
                    Dim command As OleDbCommand = New OleDbCommand("DELETE FROM T_demande_formation WHERE T_demande_formation.Demande=" & row.Cells(1).Text, connection)
                    Dim affectedrows As Integer = command.ExecuteNonQuery()
                    connection.Close()
                    Response.Redirect("frmDemandes.aspx")
                Catch
                    Response.Write("Erreur 00000055: Erreur de connexion")
                End Try
            End If
        End Sub

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

Discussions similaires

  1. [CS3] Dreamweaver CS3 supression d'enregistrement
    Par sambzh24 dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 13/03/2008, 08h57
  2. Réponses: 2
    Dernier message: 10/04/2007, 13h03
  3. Enregistrer, ouvrir une datagridview
    Par piepio dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/02/2007, 13h55
  4. [MySQL] supression d'enregistrement
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/09/2005, 19h18
  5. Confirmation de supression d'enregistrement
    Par Lux interior dans le forum XMLRAD
    Réponses: 3
    Dernier message: 25/04/2003, 16h01

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