Freigeben über


Manuelle Transaktionen und ADO.NET

Die SQL Client- und OLE DB .NET-Provider unterstützen manuelle Transaktionen in der Common Language Runtime. In ADO.NET können Sie jeden dieser .NET-Provider für das Steuern von Transaktionen verwenden.

Beide Provider beinhalten eine Menge verwalteter Objekte, die eine Datenbankverbindung erstellen, eine Transaktion beginnen und einen Commit oder Rollback für die Transaktion ausführen. Der Hauptunterschied liegt in den Verbindungsmechanismen. Der SQL Client .NET-Provider stellt eine Menge von Objekten bereit, die SQL Server direkt aufrufen. Der OLE DB .NET-Provider verwendet hingegen eigene OLE DB-Funktionen für den Datenbankzugriff.

Verwenden Sie das ADO.NET-Verbindungsobjekt Connection.BeginTransaction, um eine lokale Transaktion zu beginnen. Tragen Sie einen Befehl in dieser Transaktion mit Hilfe der Transaction-Eigenschaft des Command-Objekts ein. Verwenden Sie das Transaction-Objekt, um einen Commit oder einen Rollback der Änderungen an der Datenquelle auszuführen, je nachdem, ob die Komponenten der Transaktion erfolgreich ausgeführt wurden oder fehlgeschlagen sind.

Die Eintragung erfolgt in der Standardeinstellung automatisch und kann deaktiviert werden. Bei deaktivierter Eintragung kann diese manuell erfolgen. Mit Connection.EnlistDistributedTransaction tragen Sie in eine vorhandene verteilte Transaktion ein. Beim Speichern oder Zurücksetzen der gesamten verteilten Transaktion werden Änderungen, die durch Code an der Datenquelle vorgenommen wurden, ebenfalls gespeichert oder zurückgesetzt.

Ein Beispiel für eine Transaktion mit ADO.NET finden Sie unter Durchführen von Transaktionen.

Siehe auch

Manuelle Transaktionen | Automatische Transaktionen und .NET Framework-Klassen