Bonjour,
lorsque j'UPDATE mes données, le dataset (ou l'adapteur ?) ne travaille pas sur la bonne table. Je m'explique, voici dans l'ordre ce que fait mon code :
'pour me simplifier la vie, j'ai déclaré l'adaptateur en variable sur tout le formulaire
ensuite,
Code : Sélectionner tout - Visualiser dans une fenêtre à part Private adaptateur As OleDbDataAdapter
on rempli le dataset avec la table journal
on rempli ensuite avec la table Nom_agentligne qui me sert uniquement à rempli une combobox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 commande = New OleDbCommand(requete, connexion) adaptateur = New OleDbDataAdapter(commande) adaptateur.Fill(mondataset, "journal")
je travaille sur les données de "mondataset.Tables("JOURNAL") " UNIQUEMENT.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 commande = New OleDbCommand(reqNom_agentligne, connexion) adaptateur = New OleDbDataAdapter(commande) If mondataset.Tables.Contains("Nom_agentligne") = True Then mondataset.Tables("Nom_agentligne").Clear() adaptateur.Fill(mondataset, "Nom_agentligne")
lorsque je réalise l'update de la sorte :
l'application m'indique que le champ "Nom" n'appartient pas à la table "Nom_agentligne" => ce qui est normal puisque je veux mettre à jour la table JOURNAL...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim CmdBuild As OleDbCommandBuilder CmdBuild = New OleDb.OleDbCommandBuilder(adaptateur) CmdBuild.QuotePrefix = "[" CmdBuild.QuoteSuffix = "]" adaptateur.UpdateCommand = CmdBuild.GetUpdateCommand() adaptateur.ContinueUpdateOnError = True adaptateur.Update(mondataset, "journal")
Si j'inverse l'ordre de chargement des tables en début de code, je n'ai pas ce problème. Comme si l'update dépendait du dernier dataset chargé.
Est-ce l'adapteur qui porte le même nom qui pose problème ?
Merci de votre aide.
Jarod
Partager