Bonjour, j'ai un probleme avec la methode update d'un oledbdataadapter. J'ai une fiche avec quelques controles liés a une BD ACCESS. Lorsque je fais une fois un update ca marche sans probleme mais pour le deuxieme j'ai message d'erreur du type
"violation concurrentielle : update a affecté 0 enregistrements"
Je n'ai pas trouve grand chose pour m'aider mais appremment ce n'est pas un probleme d'acces concurr. car je suis seul a utiliser la BD et il n'ya aucune connection ouverte sur celle ci mise a part au moment de l'update.
Voici mes methodes pour acceder aux donnees :
Public Sub UpdateDataSet_detail_lot()
'Créez un nouveau groupe de données destiné à contenir les modifications apportées au groupe de données principal.
Dim objDataSetChanges As DataSet_gestion_copro_lot = New DataSet_gestion_copro_lot
'Arrêtez toute modification en cours.
Me.BindingContext(Me.DataSet_gestion_copro_lot1, "Copropriétés Lots").EndCurrentEdit()
'Obtenez les modifications apportées au groupe de données principal.
objDataSetChanges = CType(Me.DataSet_gestion_copro_lot1.GetChanges, DataSet_gestion_copro_lot)
'Vérifiez si des modifications ont été apportées.
If (Not (objDataSetChanges) Is Nothing) Then
Try
'Comme certaines modifications doivent être effectuées, essayez de mettre à jour la source de données en
'appelant la méthode update et en passant le groupe de données et tous les paramètres.
Me.UpdateDataSource_detail_lot(objDataSetChanges)
objDataSetChanges.Merge(objDataSetChanges)
objDataSetChanges.AcceptChanges()
Catch eUpdate As System.Exception
'Ajoutez ici votre gestionnaire d'erreurs.
Throw eUpdate
End Try
'Ajoutez du code pour rechercher dans le groupe de données retourné toute erreur ayant éventuellement fait
'placé dans l'erreur de l'objet ligne.
'tout a marche correctement donc je remets le TV a jour
Me.TV.SelectedNode.Text = Me.TextBox1.Text
End If
End Sub
Public Sub UpdateDataSource_detail_lot(ByVal ChangedRows As DataSet_gestion_copro_lot)
Try
'La source de données ne doit être mise à jour que s'il existe des modifications en attente.
If (Not (ChangedRows) Is Nothing) Then
'Ouvrez la connexion.
AppFoncier.GetInstance.dataaccess.MaConnexion.Open()
'Essayez de mettre à jour la source de données.
Me.OleDbDataAdapter_detail_lot.Update(ChangedRows)
End If
Catch dbcx As DBConcurrencyException
'Ajoutez ici votre gestionnaire d'erreurs.
Dim customErrorMessage As String
customErrorMessage = "Concurrency violation" & vbCrLf
customErrorMessage += CType(dbcx.Row.Item(0), String)
MessageBox.Show(customErrorMessage)
Throw dbcx
Finally
'Fermez la connexion, que l'exception ait été levée ou non.
AppFoncier.GetInstance.dataaccess.MaConnexion.Close()
End Try
End Sub
Si quelqu'un y comprend quelque chose je le remercie de son aide par avance
