Comment : gérer les erreurs d'accès concurrentiel
Mise à jour : novembre 2007
Vous pouvez intercepter l'objet DBConcurrencyException qui facilite la résolution des problèmes liés aux violations de l'accès concurrentiel. L'objet DBConcurrencyException retourne la ligne de données qui a provoqué l'erreur. Pour plus d'informations, consultez DBConcurrencyException, membres.
L'exemple suivant illustre une tentative de mise à jour d'une source de données avec le contenu de NorthwindDataSet à partir d'un bloc try/catch ; si une erreur est déclenchée, un message d'erreur ainsi que la première colonne de la ligne de données à l'origine de cette erreur s'affichent.
Remarque : |
---|
Le code ci-dessous illustre une stratégie de gestion d'erreur de mise à jour de base de données. Ce code suppose qu'il existe une connexion à une base de données ainsi qu'un groupe de données et que l'exécution de la commande de mise à jour déclenchera une violation d'accès concurrentiel. Pour obtenir des informations et un exemple complet, consultez Procédure pas à pas : gestion d'une exception d'accès concurrentiel. |
Pour résoudre une violation d'accès concurrentiel
Exécutez la commande de mise à jour de la base de données à partir d'un bloc try/catch.
Si une exception est levée, inspectez la propriété Row de l'instruction catch pour déterminer ce qui a provoqué la violation.
Ajoutez du code pour résoudre l'erreur en fonction des règles métier de votre application.
Le code suivant utilise CustomersTableAdapter et NorthwindDataSet comme exemples de l'adaptateur et du groupe de données contenus dans votre application.
Try CustomersTableAdapter.Update(NorthwindDataSet) Catch ex As DBConcurrencyException Dim customErrorMessage As String customErrorMessage = "Concurrency violation" & vbCrLf customErrorMessage += CType(ex.Row.Item(0), String) MessageBox.Show(customErrorMessage) ' Add business logic code to resolve the concurrency violation... End Try
try { customersTableAdapter.Update(northwindDataSet); } catch (DBConcurrencyException ex) { string customErrorMessage; customErrorMessage = "Concurrency violation\n"; customErrorMessage += ex.Row[0].ToString(); // Add business logic code to resolve the concurrency violation... }
Voir aussi
Concepts
Vue d'ensemble de l'affichage des données
Autres ressources
Procédures pas à pas relatives aux données
Connexion aux données dans Visual Studio
Préparation de votre application pour recevoir des données
Extraction de données dans votre application
Affichage des données sur des formulaires dans les applications Windows