Durchführen von Transaktionen
Bei Transaktionen handelt es sich um eine Folge von Operationen, die zu einer logischen Verarbeitungseinheit zusammengefasst werden. Mit ihrer Hilfe lässt sich die Konsistenz und Integrität jeder Aktion in einer Transaktion steuern und aufrechterhalten, auch wenn Fehler im System auftreten.
Angenommen, Sie arbeiten mit einer Finanzanwendung, mit der finanzielle Mittel von einem Konto auf ein anderes überwiesen werden. Einem Konto in einer Datentabelle wird ein Betrag gutgeschrieben, und gleichzeitig wird derselbe Betrag auf einem anderen Konto in einer anderen Datentabelle abgebucht. Da Computer aufgrund von Stromausfällen, Netzwerkfehlern usw. ausfallen können, kann es vorkommen, dass in einer Tabelle eine Zeile aktualisiert wird, während dies in der anderen Tabelle nicht geschieht. Wenn Transaktionen von der Datenbank unterstützt werden, können Sie Datenbankoperationen zu einer Transaktion zusammenfassen, um zu verhindern, dass Datenbankinkonsistenzen aufgrund dieser Ereignisse entstehen. Wenn an einem beliebigen Punkt innerhalb der Transaktion ein Fehler auftritt, können alle Aktualisierungen auf den Ausgangsstatus vor Beginn der Transaktion zurückgesetzt werden. Tritt kein Fehler auf, können die Aktualisierungen beendet werden, indem ein Commit für die Transaktion ausgeführt wird, d. h., die Transaktion wird als abgeschlossen gekennzeichnet.
In ADO.NET steuern Sie Transaktionen mit dem Connection-Objekt und dem Transaction-Objekt Mit Connection.BeginTransaction können Sie eine lokale Transaktion initialisieren. Nach Beginn einer Transaktion können Sie mit der Transaction-Eigenschaft des Command-Objekts einen Befehl in diese Transaktion eintragen. Anschließend können Sie je nachdem, ob die Komponenten der Transaktion erfolgreich ausgeführt wurden oder fehlgeschlagen sind, mit Hilfe des Transaction-Objekts einen Commit oder einen Rollback ausführen, d. h., die Änderungen speichern oder zurücksetzen.
Außerdem können Sie Connection.EnlistDistributedTransaction für Eintragungen in eine vorhandene verteilte Transaktion verwenden. Durch Eintragungen in eine vorhandene verteilte Transaktion stellen Sie sicher, dass Änderungen, die durch Code an der Datenquelle vorgenommen wurden, beim Speichern oder Zurücksetzen der gesamten verteilten Transaktion ebenfalls gespeichert oder zurückgesetzt werden.
In diesem Abschnitt
- Durchführen einer Transaktion mit ADO.NET
Beschreibt, wie das Connection-Objekt und das Transaction-Objekt verwendet werden, um Transaktionen für eine Datenquelle durchzuführen. - Eintragen in eine verteilte Transaktion
Beschreibt, wie für eine Datenquelle durchgeführte Aktionen mit dem Connection-Objekt in eine verteilte Transaktion eingetragen werden.
Verwandte Abschnitte
- Datenzugriff mit .NET Framework-Datenprovidern
Beschreibt die Komponenten des .NET Framework-Datenproviders und wie mit dessen Hilfe Daten aus einer Datenquelle abgefragt und aktualisiert werden können. Enthält Beispiele für den .NET Framework-Datenprovider für SQL Server und den .NET Framework-Datenprovider für OLE DB.