Problème de sauvegarde DataGridView -> Access

Xtophe62 Messages postés 2 Date d'inscription jeudi 10 octobre 2013 Statut Membre Dernière intervention 11 octobre 2013 - 10 oct. 2013 à 01:54
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 13 oct. 2013 à 23:21
Bonjour,

J'ai un programme VB.NET (développé avec VB 2010 Express) qui lit une table (Programme) Access (Office 2007) que je visualise dans un DataGridView (DGV_Programme).

' Chargement des données dans la table PB15DataSet.Programme
ProgrammeTableAdapter.Fill(Me.PB15DataSet.Programme)

J'ai un DataSet (PB15DataSet), un TableAdapter (ProgrammeTableAdapter) et une BindingSource (ProgrammeBindingSource).

La lecture et le Fill du DataGridView ne posent aucun problème, par contre, là où ça se gâte, c'est une fois des modifications réalisées dans le DataGridView pour les sauvegarder dans Access.

Le code suivant ne renvoie pas d'exception mais n'impact pas ma base non plus?
Try
Me.Validate()
Me.ProgrammeBindingSource.EndEdit()
Me.ProgrammeTableAdapter.Update(Me.PB15DataSet.Programme)
MsgBox("Modifications sauvegardées", MsgBoxStyle.Exclamation, Confirm)
Catch ex As Exception
MsgBox("Erreur, Programme NON sauvegardé!!!", MsgBoxStyle.Critical, Confirm)
End Try

J'ai trouvé beaucoup de topics sur de nombreux forums à ce sujet mais pas de réponse qui pourraient m'aider.
Que peut-il bien se passer? Si au moins ma base répondait qu'elle n'accepte pas l'écriture
D'avance merci pour votre aide.

3 réponses

torki2 Messages postés 56 Date d'inscription samedi 21 février 2009 Statut Membre Dernière intervention 16 novembre 2019 1
10 oct. 2013 à 14:08
avant d'appeler la méthode Update de ton dataAdpter il faut créer un objet CommanBuilder
dim cmdb as new oledb.oledbCommandBuilder(PB15DataSet)
ça devrai enregistrer tes modifications dans ta base
0
Xtophe62 Messages postés 2 Date d'inscription jeudi 10 octobre 2013 Statut Membre Dernière intervention 11 octobre 2013
11 oct. 2013 à 08:46
Salut, Merci pour ta réponse,

ça ne fonctionne pas pour un problème de typage? :
Impossible de convertir un DataSet en OleDbDataAdapter
Ce qui m'inquiète le plus c'est que je n'ai pas grand chose d'OleDB à part ma : connectionStrings
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\PB15.accdb" providerName="System.Data.OleDb"

dans mon code...
Tout mes objets sont issus de la boîte à outils et ont été glissé et configurés sur ma Form.
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 13/10/2013 à 23:49
Salut

Poste ton code en utilisant la coloration syntaxique 4 iem icon
essaie

Try 
   Me.ProgrammeBindingSource.EndEdit() 
   If Me.PB15DataSet.HasChanges Then
          Me.ProgrammeTableAdapter.Update(Me.PB15DataSet.Programme) 
    End If

MsgBox("Modifications sauvegardées", MsgBoxStyle.Exclamation, Confirm) 
Catch ex As Exception 
MsgBox("Erreur, Programme NON sauvegardé!!!", MsgBoxStyle.Critical, Confirm) 
me.validate 
End Try 


mets un point d'arret F9 à la ligne If MyDataSet.HasChanges
lance ton prog effectue une modification à la datagrid
et continue ensuite pas à pas
le If MyDataSet.HasChanges est executé ?
0
Rejoignez-nous