Partilhar via


Salvar dados usando uma transação em aplicativos do .NET Framework

Observação

A DataSet classe e as classes relacionadas são tecnologias herdadas do .NET Framework do início dos anos 2000 que permitem que os aplicativos trabalhem com dados na memória enquanto os aplicativos estão desconectados do banco de dados. As tecnologias são especialmente úteis para aplicativos que permitem aos usuários modificar dados e manter as alterações de volta ao banco de dados. Embora os conjuntos de dados sejam uma tecnologia comprovadamente bem-sucedida, a abordagem recomendada para novos aplicativos .NET é usar o Entity Framework Core. O Entity Framework fornece uma maneira mais natural de trabalhar com dados tabulares como modelos de objeto e tem uma interface de programação mais simples.

Você salva dados em uma transação usando o System.Transactions namespace. Use o TransactionScope objeto para participar de uma transação que é gerenciada automaticamente para você.

Os projetos não são criados com uma referência ao assembly System.Transactions , portanto, você precisa adicionar manualmente uma referência aos projetos que usam transações.

A maneira mais fácil de implementar uma transação é instanciar um TransactionScope objeto em uma using instrução. (Para obter mais informações, consulte Usando instrução e Usando instrução.) O código executado dentro da using instrução participa da transação.

Para confirmar a transação, chame o Complete método como a última instrução no bloco de uso.

Para reverter a transação, lance uma exceção antes de chamar o Complete método.

Para adicionar uma referência ao System.Transactions.dll

  1. No menu Project, selecione Adicionar referência.

  2. .NET Na guia (guia SQL Server para projetos do SQL Server), selecione System.Transactions e, em seguida, selecione OK.

    Uma referência a System.Transactions.dll é adicionada ao projeto.

Para salvar dados em uma transação

  • Adicione código para salvar dados dentro da instrução using que contém a transação. O código a seguir mostra como criar e instanciar um objeto TransactionScope numa instrução '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();
    }