SqlTransaction Classe

Definição

Representa uma transação Transact-SQL a ser feita em um banco de dados do SQL Server.Represents a Transact-SQL transaction to be made in a SQL Server database. Essa classe não pode ser herdada.This class cannot be inherited.

public ref class SqlTransaction sealed : System::Data::Common::DbTransaction
public ref class SqlTransaction sealed : MarshalByRefObject, IDisposable, System::Data::IDbTransaction
public ref class SqlTransaction sealed : System::Data::Common::DbTransaction, IDisposable
public sealed class SqlTransaction : System.Data.Common.DbTransaction
public sealed class SqlTransaction : MarshalByRefObject, IDisposable, System.Data.IDbTransaction
public sealed class SqlTransaction : System.Data.Common.DbTransaction, IDisposable
type SqlTransaction = class
    inherit DbTransaction
type SqlTransaction = class
    inherit MarshalByRefObject
    interface IDbTransaction
    interface IDisposable
type SqlTransaction = class
    inherit DbTransaction
    interface IDbTransaction
    interface IDisposable
Public NotInheritable Class SqlTransaction
Inherits DbTransaction
Public NotInheritable Class SqlTransaction
Inherits MarshalByRefObject
Implements IDbTransaction, IDisposable
Public NotInheritable Class SqlTransaction
Inherits DbTransaction
Implements IDisposable
Herança
SqlTransaction
Herança
Herança
SqlTransaction
Implementações

Exemplos

O exemplo a seguir cria um SqlConnection e um SqlTransaction .The following example creates a SqlConnection and a SqlTransaction. Ele também demonstra como usar os BeginTransaction métodos, Commit e Rollback .It also demonstrates how to use the BeginTransaction, Commit, and Rollback methods. A transação é revertida em qualquer erro ou se é descartada sem ser confirmada pela primeira vez.The transaction is rolled back on any error, or if it is disposed without first being committed. Try/Catch o tratamento de erros é usado para lidar com quaisquer erros ao tentar confirmar ou reverter a transação.Try/Catch error handling is used to handle any errors when attempting to commit or roll back the transaction.

private static void ExecuteSqlTransaction(string connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();

        SqlCommand command = connection.CreateCommand();
        SqlTransaction transaction;

        // Start a local transaction.
        transaction = connection.BeginTransaction("SampleTransaction");

        // Must assign both transaction object and connection
        // to Command object for a pending local transaction
        command.Connection = connection;
        command.Transaction = transaction;

        try
        {
            command.CommandText =
                "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
            command.ExecuteNonQuery();
            command.CommandText =
                "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
            command.ExecuteNonQuery();

            // Attempt to commit the transaction.
            transaction.Commit();
            Console.WriteLine("Both records are written to database.");
        }
        catch (Exception ex)
        {
            Console.WriteLine("Commit Exception Type: {0}", ex.GetType());
            Console.WriteLine("  Message: {0}", ex.Message);

            // Attempt to roll back the transaction.
            try
            {
                transaction.Rollback();
            }
            catch (Exception ex2)
            {
                // This catch block will handle any errors that may have occurred
                // on the server that would cause the rollback to fail, such as
                // a closed connection.
                Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType());
                Console.WriteLine("  Message: {0}", ex2.Message);
            }
        }
    }
}
Private Sub ExecuteSqlTransaction(ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        connection.Open()

        Dim command As SqlCommand = connection.CreateCommand()
        Dim transaction As SqlTransaction

        ' Start a local transaction
        transaction = connection.BeginTransaction("SampleTransaction")

        ' Must assign both transaction object and connection
        ' to Command object for a pending local transaction.
        command.Connection = connection
        command.Transaction = transaction

        Try
            command.CommandText = _
              "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
            command.ExecuteNonQuery()
            command.CommandText = _
              "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"

            command.ExecuteNonQuery()

            ' Attempt to commit the transaction.
            transaction.Commit()
            Console.WriteLine("Both records are written to database.")

        Catch ex As Exception
            Console.WriteLine("Commit Exception Type: {0}", ex.GetType())
            Console.WriteLine("  Message: {0}", ex.Message)

            ' Attempt to roll back the transaction.
            Try
                transaction.Rollback()

            Catch ex2 As Exception
                ' This catch block will handle any errors that may have occurred
                ' on the server that would cause the rollback to fail, such as
                ' a closed connection.
                Console.WriteLine("Rollback Exception Type: {0}", ex2.GetType())
                Console.WriteLine("  Message: {0}", ex2.Message)
            End Try
        End Try
    End Using
End Sub

Comentários

O aplicativo cria um SqlTransaction objeto chamando BeginTransaction no SqlConnection objeto.The application creates a SqlTransaction object by calling BeginTransaction on the SqlConnection object. Todas as operações subsequentes associadas à transação (por exemplo, confirmação ou anulação da transação) são executadas no SqlTransaction objeto.All subsequent operations associated with the transaction (for example, committing or aborting the transaction), are performed on the SqlTransaction object.

Observação

Try/Catch a manipulação de exceção sempre deve ser usada ao confirmar ou reverter um SqlTransaction .Try/Catch exception handling should always be used when committing or rolling back a SqlTransaction. CommitE Rollback gerar um InvalidOperationException se a conexão for encerrada ou se a transação já tiver sido revertida no servidor.Both Commit and Rollback generate an InvalidOperationException if the connection is terminated or if the transaction has already been rolled back on the server.

Para obter mais informações sobre transações de SQL Server, consulte transações explícitas e codificando transações eficientes.For more information on SQL Server transactions, see Explicit Transactions and Coding Efficient Transactions.

Propriedades

Connection

Obtém o objeto SqlConnection associado à transação ou null, se a transação não for mais válida.Gets the SqlConnection object associated with the transaction, or null if the transaction is no longer valid.

DbConnection

Quando substituído em uma classe derivada, obtém o objeto DbConnection associado à transação.When overridden in a derived class, gets the DbConnection object associated with the transaction.

(Herdado de DbTransaction)
IsolationLevel

Especifica o IsolationLevel para essa transação.Specifies the IsolationLevel for this transaction.

SupportsSavepoints

Obtém um valor que indica se esta instância de DbTransaction dá suporte para pontos de salvamento do banco de dados.Gets a value that indicates whether this DbTransaction instance supports database savepoints. Se false, os métodos SaveAsync(String, CancellationToken), RollbackAsync(String, CancellationToken) e ReleaseAsync(String, CancellationToken), bem como seus correspondentes síncronos, deverão lançar NotSupportedException.If false, the methods SaveAsync(String, CancellationToken), RollbackAsync(String, CancellationToken) and ReleaseAsync(String, CancellationToken) as well as their synchronous counterparts are expected to throw NotSupportedException.

(Herdado de DbTransaction)

Métodos

Commit()

Confirma a transação do banco de dados.Commits the database transaction.

CommitAsync(CancellationToken)

Confirma de maneira assíncrona a transação de banco de dados.Asynchronously commits the database transaction.

(Herdado de DbTransaction)
CreateObjRef(Type)

Cria um objeto que contém todas as informações relevantes necessárias para gerar um proxy usado para se comunicar com um objeto remoto.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Herdado de MarshalByRefObject)
Dispose()

Libera os recursos que são mantidos pelo objeto.Releases the resources that are held by the object.

Dispose()

Libera os recursos não gerenciados usados pelo DbTransaction.Releases the unmanaged resources used by the DbTransaction.

(Herdado de DbTransaction)
Dispose(Boolean)

Libera os recursos não gerenciados usados pelo DbTransaction e opcionalmente libera os recursos gerenciados.Releases the unmanaged resources used by the DbTransaction and optionally releases the managed resources.

(Herdado de DbTransaction)
DisposeAsync()

Descarta de forma assíncrona o objeto da transação.Asynchronously diposes the transaction object.

(Herdado de DbTransaction)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetLifetimeService()
Obsoleto.

Recupera o objeto de serviço de tempo de vida atual que controla a política de ciclo de vida para esta instância.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Herdado de MarshalByRefObject)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
InitializeLifetimeService()
Obsoleto.

Obtém um objeto de serviço de tempo de vida para controlar a política de tempo de vida para essa instância.Obtains a lifetime service object to control the lifetime policy for this instance.

(Herdado de MarshalByRefObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
MemberwiseClone(Boolean)

Cria uma cópia superficial do objeto MarshalByRefObject atual.Creates a shallow copy of the current MarshalByRefObject object.

(Herdado de MarshalByRefObject)
Release(String)

Destrói um ponto de salvamento definido anteriormente na transação atual.Destroys a savepoint previously defined in the current transaction. Isso permite que o sistema recupere alguns recursos antes que a transação termine.This allows the system to reclaim some resources before the transaction ends.

(Herdado de DbTransaction)
ReleaseAsync(String, CancellationToken)

Destrói um ponto de salvamento definido anteriormente na transação atual.Destroys a savepoint previously defined in the current transaction. Isso permite que o sistema recupere alguns recursos antes que a transação termine.This allows the system to reclaim some resources before the transaction ends.

(Herdado de DbTransaction)
Rollback()

Reverte uma transação de um estado pendente.Rolls back a transaction from a pending state.

Rollback(String)

Reverte uma transação de um estado pendente e especifica o nome de ponto de salvamento ou da transação.Rolls back a transaction from a pending state, and specifies the transaction or savepoint name.

RollbackAsync(CancellationToken)

Reverte de maneira assíncrona uma transação de um estado pendente.Asynchronously rolls back a transaction from a pending state.

(Herdado de DbTransaction)
RollbackAsync(String, CancellationToken)

Reverte todos os comandos que foram executados após o estabelecimento do ponto de salvamento especificado.Rolls back all commands that were executed after the specified savepoint was established.

(Herdado de DbTransaction)
Save(String)

Cria um ponto de salvamento na transação, que pode ser usado para reverter uma parte da transação e especifica o nome do ponto de salvamento.Creates a savepoint in the transaction that can be used to roll back a part of the transaction, and specifies the savepoint name.

SaveAsync(String, CancellationToken)

Cria um ponto de salvamento na transação.Creates a savepoint in the transaction. Isso permite que todos os comandos executados após e estabelecimento do ponto de salvamento sejam revertidos, restaurando o estado da transação para o que era no momento do salvamento.This allows all commands that are executed after the savepoint was established to be rolled back, restoring the transaction state to what it was at the time of the savepoint.

(Herdado de DbTransaction)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Implantações explícitas de interface

IDbTransaction.Connection

Obtém o objeto DbConnection associado à transação ou uma referência nula, se a transação não for mais válida.Gets the DbConnection object associated with the transaction, or a null reference if the transaction is no longer valid.

(Herdado de DbTransaction)

Aplica-se a