SqlTransaction Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa uma transação Transact-SQL a ser feita em um banco de dados SQL Server. Essa classe não pode ser herdada.
Para um novo desenvolvimento, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient.
public ref class SqlTransaction sealed : System::Data::Common::DbTransaction
public ref class SqlTransaction sealed : MarshalByRefObject, IDisposable, System::Data::IDbTransaction
public sealed class SqlTransaction : System.Data.Common.DbTransaction
public sealed class SqlTransaction : MarshalByRefObject, IDisposable, System.Data.IDbTransaction
type SqlTransaction = class
inherit DbTransaction
type SqlTransaction = class
inherit MarshalByRefObject
interface IDbTransaction
interface IDisposable
Public NotInheritable Class SqlTransaction
Inherits DbTransaction
Public NotInheritable Class SqlTransaction
Inherits MarshalByRefObject
Implements IDbTransaction, IDisposable
- Herança
- Herança
- Herança
- Implementações
Exemplos
O exemplo a seguir cria um SqlConnection e um SqlTransaction. Ele também demonstra como usar os BeginTransactionmétodos e Commit . Rollback A transação é revertida em qualquer erro ou se for descartada sem primeiro ser confirmada.
Try
/
Catch o tratamento de erros é usado para lidar com erros ao tentar confirmar ou reverter a transação.
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();
// 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()
' 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 o SqlConnection objeto. Todas as operações subsequentes associadas à transação (por exemplo, confirmando ou anulando a transação) são executadas no SqlTransaction objeto.
Note
Try
/
Catch o tratamento de exceções sempre deve ser usado ao confirmar ou reverter um SqlTransaction.
Commit E Rollback gere um InvalidOperationException se a conexão for encerrada ou se a transação já tiver sido revertida no servidor.
Para obter mais informações sobre transações SQL Server, consulte Explicit Transactions e Coding Efficient Transactions.
Propriedades
| Nome | Description |
|---|---|
| Connection |
Obtém o SqlConnection objeto associado à transação ou Para um novo desenvolvimento, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient. |
| DbConnection |
Quando substituído em uma classe derivada, obtém o DbConnection objeto associado à transação. (Herdado de DbTransaction) |
| IsolationLevel |
Especifica a IsolationLevel transação para essa transação. Para um novo desenvolvimento, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient. |
Métodos
| Nome | Description |
|---|---|
| Commit() |
Confirma a transação de banco de dados. Para um novo desenvolvimento, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient. |
| 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. (Herdado de MarshalByRefObject) |
| Dispose() |
Libera os recursos mantidos pelo objeto. Para um novo desenvolvimento, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient. |
| Dispose() |
Libera os recursos não gerenciados usados pelo DbTransaction. (Herdado de DbTransaction) |
| Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo DbTransaction e, opcionalmente, libera os recursos gerenciados. (Herdado de DbTransaction) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
| GetLifetimeService() |
Obsoleto.
Recupera o objeto de serviço de tempo de vida atual que controla a política de tempo de vida para essa instância. (Herdado de MarshalByRefObject) |
| GetType() |
Obtém o Type da instância atual. (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 dessa instância. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| Rollback() |
Reverte uma transação de um estado pendente. Para um novo desenvolvimento, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient. |
| Rollback(String) |
Reverte uma transação de um estado pendente e especifica o nome da transação ou do ponto de salvamento. Para um novo desenvolvimento, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient. |
| 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. Para um novo desenvolvimento, use Microsoft. Data.SqlClient. Esta página documenta System.Data.SqlClient. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| IDbTransaction.Connection |
Obtém o DbConnection objeto associado à transação ou uma referência nula se a transação não for mais válida. (Herdado de DbTransaction) |