Freigeben über


Gewusst wie: Behandeln von Parallelitätsfehlern

Aktualisiert: November 2007

Sie können das DBConcurrencyException-Objekt abfangen, um das Lösen von Problemen zu unterstützen, die auf Parallelitätsverletzungen zurückzuführen sind. Das DBConcurrencyException-Objekt gibt die Datenzeile zurück, die den Fehler verursacht hat. Weitere Informationen finden Sie unter DBConcurrencyException-Klasse.

Im folgenden Beispiel wird versucht, eine Datenquelle innerhalb eines try/catch-Blocks mit dem Inhalt von NorthwindDataSet zu aktualisieren. Wenn ein Fehler ausgelöst wird, wird die Fehlermeldung zusammen mit der ersten Spalte der beanstandeten Datenzeile angezeigt.

Hinweis:

Der folgende Code zeigt eine Strategie, die bei der Datenbankaktualisierung zur Behandlung von Fehlern verwendet werden kann. In diesem Code wird davon ausgegangen, dass eine Datenbankverbindung und ein Dataset vorhanden sind und dass durch das Ausführen des Aktualisierungsbefehls eine Parallelitätsverletzung verursacht wird. Weitere Informationen sowie ein vollständiges Beispiel finden Sie unter Exemplarische Vorgehensweise: Behandeln einer Parallelitätsausnahme.

So lösen Sie eine Parallelitätsverletzung auf

  1. Führen Sie den Befehl zur Aktualisierung der Datenbank innerhalb eines try/catch-Blocks aus.

  2. Wenn eine Ausnahme ausgelöst wird, überprüfen Sie die Row-Eigenschaft der catch-Anweisung, um die Ursache für die Verletzung zu ermitteln.

  3. Fügen Sie Code hinzu, durch den der Fehler entsprechend den Geschäftsregeln der Anwendung gelöst wird.

    Im folgenden Code werden CustomersTableAdapter und NorthwindDataSet als Adapter und Dataset der Anwendung verwendet.

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

Siehe auch

Konzepte

Neue Datenfeatures

Übersicht über das Anzeigen von Daten

Weitere Ressourcen

Exemplarische Vorgehensweisen zur Arbeit mit Daten

Herstellen von Datenverbindungen in Visual Studio

Vorbereiten der Anwendung auf den Empfang von Daten

Abrufen von Daten für die Anwendung

Anzeigen von Daten in Formularen in Windows-Anwendungen

Bearbeiten von Daten in der Anwendung

Überprüfen von Daten

Speichern von Daten