Freigeben über


Speichern von Daten mithilfe einer Transaktion in .NET Framework-Anwendungen

Hinweis

Die DataSet Klassen und verwandten Klassen sind ältere .NET Framework-Technologien aus den frühen 2000er Jahren, mit denen Anwendungen mit Daten im Arbeitsspeicher arbeiten können, während die Apps von der Datenbank getrennt sind. Die Technologien sind besonders nützlich für Apps, mit denen Benutzer Daten ändern und die Änderungen wieder in der Datenbank speichern können. Obwohl Datasets eine bewährte erfolgreiche Technologie sind, ist der empfohlene Ansatz für neue .NET-Anwendungen die Verwendung von Entity Framework Core. Entity Framework bietet eine natürlichere Möglichkeit zum Arbeiten mit tabellarischen Daten als Objektmodelle und verfügt über eine einfachere Programmierschnittstelle.

Sie speichern Daten in einer Transaktion mithilfe des System.Transactions Namespaces. Verwenden Sie das TransactionScope Objekt, um an einer Transaktion teilzunehmen, die automatisch für Sie verwaltet wird.

Projekte werden nicht mit einem Verweis auf die System.Transactions-Assembly erstellt, daher müssen Sie manuell einen Verweis auf Projekte hinzufügen, die Transaktionen verwenden.

Die einfachste Möglichkeit zum Implementieren einer Transaktion besteht darin, ein TransactionScope Objekt in einer using Anweisung zu instanziieren. (Weitere Informationen finden Sie unter Using-Anweisung und Using-Anweisung.) Der Code, der innerhalb der using Anweisung ausgeführt wird, nimmt an der Transaktion teil.

Um die Transaktion zu übernehmen, rufen Sie die Complete Methode als letzte Anweisung im using-Block auf.

Um die Transaktion zurückzurufen, lösen Sie vor dem Aufrufen der Complete Methode eine Ausnahme aus.

So fügen Sie einen Verweis auf System.Transactions.dll hinzu

  1. Wählen Sie im Menü Projekt die Option Verweis hinzufügen aus.

  2. Wählen Sie auf der .NET Registerkarte (Registerkarte SQL Server für SQL Server-Projekte) "System.Transactions" und dann "OK" aus.

    Dem Projekt wird ein Verweis auf System.Transactions.dll hinzugefügt.

So speichern Sie Daten in einer Transaktion

  • Fügen Sie Code zum Speichern von Daten in der using-Anweisung hinzu, die die Transaktion enthält. Der folgende Code zeigt, wie Sie ein TransactionScope Objekt in einer using-Anweisung erstellen und instanziieren:

    using (System.Transactions.TransactionScope updateTransaction = 
        new System.Transactions.TransactionScope())
    {
        // Add code to save your data here.
        // Throw an exception to roll back the transaction.
    
        // Call the Complete method to commit the transaction
        updateTransaction.Complete();
    }