[VB.NET][2.0]traiter une Concurrency exception
Bonjour à tous,
Dans ma quête de trouver des moyens pour mettre à jour ma base Access via mon dataSet non typé, j'ai trouvé sur le forum le petit bout de code suivant et j'en profite pour remercier son auteur.
Code:
1 2 3 4 5 6 7 8 9 10
| Private Sub MajBase(ByVal Adapter As OleDbDataAdapter, ByVal table As String)
Connection.Open()
' Création CommandBuilder
'(genere automatiquement l'update entre le dataSet et la base de donnée
Dim CmdBuild As OleDbCommandBuilder
CmdBuild = New OleDb.OleDbCommandBuilder(Adapter)
Adapter.UpdateCommand = CmdBuild.GetUpdateCommand()
Adapter.Update(DtSet, table)
Connection.Close()
End Sub |
Lorsque je fais une modification d'une donnée dans mon application (dans le dataset donc), et que je m'amuse à aller changer directement dans la table access ce même enregistrement (un peu comme si un autre utilisateur avait modifié cette information via une autre instance de mon application), je recois le message suivant:
Citation:
An unhandled exception of type 'System.Data.DBConcurrencyException' occurred in System.Data.dll
Additional information: Concurrency violation: the UpdateCommand affected 0 of the expected 1 records.
Ce qui en soit me parait normal, bien sûr il faut que je mette mon code dans un Try Catch et que je prévienne l'utilisateur que son information a été changée par ailleurs et normalement je dois aussi lui demander si il veut annuler sa modification ou écraser la modification de l'autre.
Si il choisit d'écraser, comment faire ?