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
Führen Sie den Befehl zur Aktualisierung der Datenbank innerhalb eines try/catch-Blocks aus.
Wenn eine Ausnahme ausgelöst wird, überprüfen Sie die Row-Eigenschaft der catch-Anweisung, um die Ursache für die Verletzung zu ermitteln.
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
Ü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