Synchronisation BDD Access à partir d'un DataGridView [Résolu]

Signaler
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
-
Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
-
Bonjour

J'ai un petit problème, j'ai définit une fonction pour récupérer un DataSet à partir d'une requête SQL :
   Private Function GetDataSet(ByVal pSql As String, ByVal pTableName As _
      String, ByVal pDataSet As DataSet, ByVal pClearDataSet As Boolean) As _
      DataSet
        Dim MyAdapter As OleDbDataAdapter = New OleDbDataAdapter()
        Dim MyCommand As OleDbCommand
        Dim CmdBuild As OleDbCommandBuilder

        Try
            MyCommand = New OleDbCommand(pSql, mConnection)
            MyAdapter.SelectCommand = MyCommand
            CmdBuild = New OleDb.OleDbCommandBuilder(MyAdapter)
            MyAdapter.UpdateCommand = CmdBuild.GetUpdateCommand
            If pClearDataSet Then pDataSet.Clear()
            MyAdapter.Fill(pDataSet, pTableName)
            'MyAdapter.
            'A ce niveau les donnes résultantes de la requete
            'se trouvent dans => MyDataSet.Tables(0)
            Return pDataSet
        Catch ex As Exception
            MessageBox.Show("Impossible de créer le dataSet. " & _
              ex.Message)
            Return Nothing
        End Try
    End Function, ----
(Coloration syntaxique automatique par Kenji)

Mon problème c'est que lorsque je modifie mon DataGridView, je voudrais que les modifications soient apportées à la base de données.

J'ai essayer cela pour mettre à jour ma base de données, j'ai essayer ça :
            DGProduits.Update()
            DirectCast(DGProduits.DataSource, Data.DataSet).AcceptChanges()
Mais ça ne fonctionne pas.

Auriez-vous une aide précieuse à m'apporter, S.V.P. ?

Merci d'avance.

J'ai rechercher sur le forum, mais je n'ai rien trouvé.

Nous captons le cockpit coupable qui a capoté
VB (6, .NET1&2), C++, C#.Net1
Mon site

1 réponse

Messages postés
14769
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 février 2021
151
Bonjour

Bon en fouillant les tréfond du Web, je suis finalement tombé (et ça fait son effet, une boss) sur la solution, simple, mais pas évidente :

Au moment de la création du DataSet, on utilise un DataAdapter.
Il faut le mémoriser avec le dataset et au moment de la mise à jour, il faut utiliser cette commande :
DataAdapter.Unpdat(DataSet.Tables(0))
Bien entendu, le (0) est la première tabole, à adapter selon le besoin.
Pour le DatagridView, il faut juste lui passer le DataSet ainsi que le nom de la table à afficher/modifier.

Nous captons le cockpit coupable qui a capoté
VB (6, .NET1&2), C++, C#.Net1
Mon site