Synchronisation BDD Access à partir d'un DataGridView

Résolu
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 21 mars 2008 à 16:19
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 - 31 mars 2008 à 16:44
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
A voir également:

1 réponse

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
31 mars 2008 à 16:44
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
3
Rejoignez-nous