Sdílet prostřednictvím


Ukládání dat pomocí transakce v aplikacích .NET Framework

Poznámka:

Datové sady a související třídy jsou staršími technologiemi rozhraní .NET Framework z počátku 2000, které aplikacím umožňují pracovat s daty v paměti, zatímco aplikace jsou odpojené od databáze. Jsou zvláště užitečné pro aplikace, které uživatelům umožňují upravovat data a uchovávat změny zpět do databáze. I když se datové sady ukázaly jako velmi úspěšná technologie, doporučujeme, aby nové aplikace .NET používaly Entity Framework Core. Entity Framework poskytuje přirozenější způsob práce s tabulkovými daty jako objektovými modely a má jednodušší programovací rozhraní.

Data uložíte do transakce pomocí System.Transactions oboru názvů. TransactionScope Objekt použijte k účasti na transakci, která se automaticky spravuje za vás.

Projekty nejsou vytvořeny s odkazem na sestavení System.Transactions , takže je nutné ručně přidat odkaz na projekty, které používají transakce.

Nejjednodušší způsob implementace transakce je vytvoření instance TransactionScope objektu using v příkazu. (Další informace najdete v tématu Using – příkaz a Using – příkaz.) Kód, který se spouští v rámci using příkazu, se účastní transakce.

Chcete-li potvrdit transakci, zavolejte metodu Complete jako poslední příkaz v bloku using.

Chcete-li vrátit transakce zpět, vyvoláte výjimku před voláním Complete metody.

Přidání odkazu na System.Transactions.dll

  1. V nabídce Projekt vyberte Přidat odkaz.

  2. .NET Na kartě (karta SQL Server pro projekty SYSTÉMU SQL Server) vyberte System.Transactions a pak vyberte OK.

    Odkaz na System.Transactions.dll je přidán do projektu.

Uložení dat v transakci

  • Přidejte kód pro ukládání dat v příkazu using, který obsahuje transakci. Následující kód ukazuje, jak vytvořit a vytvořit instanci TransactionScope objektu v příkazu using:

    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();
    }