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

  1. Exécutez la commande de mise à jour de la base de données à partir d'un bloc try/catch.

  2. Si une exception est levée, inspectez la propriété Row de l'instruction catch pour déterminer ce qui a provoqué la violation.

  3. 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

Nouveautés des données

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

Modification des données dans votre application

Validation des données

Enregistrement des données