Datagrid et Vb.NET

cs_VDB1 Messages postés 7 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 21 juillet 2004 - 31 mars 2004 à 13:12
cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004 - 11 mai 2004 à 14:56
Bonjour,

je débute en VB.NET (Windows Form) et j'ai des difficultés avec mon datagrid

J'arrive à récupérer mes données depuis mon dataset et à les afficher.

Par contre, je suis incapable de les modifier, d'en insérer de nouvelles ou encore d'en supprimer.

Si quelqu'un pouvait m'aider car j'ai l'impression que ce n'est pas possible à part en utilisant une form classique à côté.

VDB1

1 réponse

cs_Suffren Messages postés 92 Date d'inscription vendredi 4 juillet 2003 Statut Membre Dernière intervention 9 août 2004
11 mai 2004 à 14:56
Bonjour,
j'arrive seulement à insérer ou à supprimer un enregistrment même si pour l'ajout tu le mets en dur (dans le code VB) et tu fais une modification.
Pour cette dernière je suis coincée depuis plusieurs semaines.
L'ajout se fait par un bouton CmdAjout dont le code est :

  Private Sub CmdAjouter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdAjouter.Click
        strSQL = "INSERT INTO Bestioles (Nom, Type) VALUES    (""nouveau"" , ""nouveau"")"
        ExecuteNonQuery(strSQL)
        ReadRecords()
    End Sub


avec les fonctions suivantes :

'fonction qui lit les données de la base et les affiche dans le datagrid
 Private Function ReadRecords()
        connexion = "Provider=Microsoft.Jet.OLEDB.4.0; " + "Data Source=C:/InetPub/wwwroot/Animaux/animaux.mdb;"
        conn = New OleDbConnection()
        conn.ConnectionString = connexion
        conn.Open()

        cmd = New OleDbCommand("Select * FROM Bestioles", conn)
        objDataAdapter = New OleDbDataAdapter(cmd)
        cmd.Connection() = conn

        reader = cmd.ExecuteReader()
        DataGrid1.DataSource = reader
        DataGrid1.DataBind()
    End Function

  Private Sub ExecuteNonQuery(ByVal sql)
        connexion = "Provider=Microsoft.Jet.OLEDB.4.0; " + "Data Source=C:/InetPub/wwwroot/Animaux/animaux.mdb;"
        conn = New OleDbConnection()
        conn.ConnectionString = connexion
        conn.Open()
        cmd = New OleDbCommand(sql, conn)
        objDataAdapter = New OleDbDataAdapter(cmd)
        cmd.Connection() = conn
        cmd.ExecuteNonQuery()
        conn.Close()
    End Sub



Enfin pour la suppression tu prends la fonction CancelCommand du datagrid et tu y injectes ceci :

   Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand
        Dim ID As Double
        ID = DataGrid1.DataKeys(e.Item.ItemIndex)
        strSQL = "DELETE FROM Bestioles WHERE ID=" & ID & ";"
        ExecuteNonQuery(strSQL)
        ReadRecords()
    End Sub

J'espère t'avoir aidé un peu
Cordialement,
Suffren
0
Rejoignez-nous