SqlTransaction Sınıf

Tanım

SQL Server veritabanında yapılacak bir Transact-SQL işlemini temsil eder.Represents a Transact-SQL transaction to be made in a SQL Server database. Bu sınıf devralınamaz.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
Devralma
SqlTransaction
Devralma
Devralma
SqlTransaction
Uygulamalar

Örnekler

Aşağıdaki örnek bir ve oluşturur SqlConnection SqlTransaction .The following example creates a SqlConnection and a SqlTransaction. Ayrıca,, ve yöntemlerinin nasıl kullanılacağını BeginTransaction gösterir Commit Rollback .It also demonstrates how to use the BeginTransaction, Commit, and Rollback methods. İşlem herhangi bir hata üzerinde geri alınır veya önce yürütülmeden atılmış olur.The transaction is rolled back on any error, or if it is disposed without first being committed. Try/Catch hata işleme işlemi işleme veya geri alma girişimi sırasında oluşan hataları işlemek için kullanılır.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

Açıklamalar

Uygulama, SqlTransaction nesnesine çağırarak bir nesne oluşturur BeginTransaction SqlConnection .The application creates a SqlTransaction object by calling BeginTransaction on the SqlConnection object. İşlemle ilişkili tüm sonraki işlemler (örneğin, işlemi yürütme veya iptal etme) nesne üzerinde gerçekleştirilir SqlTransaction .All subsequent operations associated with the transaction (for example, committing or aborting the transaction), are performed on the SqlTransaction object.

Not

Try/Catch özel durum işleme her zaman bir işlem gerçekleştirirken veya geri alınırken kullanılmalıdır SqlTransaction .Try/Catch exception handling should always be used when committing or rolling back a SqlTransaction. Her ikisi de Commit Rollback InvalidOperationException bağlantı sonlandırılırsa veya işlem sunucuda zaten geri alınırsa oluşturun.Both Commit and Rollback generate an InvalidOperationException if the connection is terminated or if the transaction has already been rolled back on the server.

SQL Server işlemler hakkında daha fazla bilgi için bkz. açık işlemler ve kodlama verimli işlemleri.For more information on SQL Server transactions, see Explicit Transactions and Coding Efficient Transactions.

Özellikler

Connection

SqlConnectionİşlemle ilişkili nesneyi alır veya null işlem artık geçerli değilse.Gets the SqlConnection object associated with the transaction, or null if the transaction is no longer valid.

DbConnection

Türetilmiş bir sınıfta geçersiz kılındığında, DbConnection işlemle ilişkili nesneyi alır.When overridden in a derived class, gets the DbConnection object associated with the transaction.

(Devralındığı yer: DbTransaction)
IsolationLevel

IsolationLevelBu işlem için belirtir.Specifies the IsolationLevel for this transaction.

SupportsSavepoints

Bu DbTransaction örneğin veritabanı Savepoints 'i destekleyip desteklemediğini gösteren bir değer alır.Gets a value that indicates whether this DbTransaction instance supports database savepoints. Eğer false , ve yöntemlerinin SaveAsync(String, CancellationToken) RollbackAsync(String, CancellationToken) ReleaseAsync(String, CancellationToken) zaman uyumlu karşılıklarının throw olması beklenir 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.

(Devralındığı yer: DbTransaction)

Yöntemler

Commit()

Veritabanı işlemini kaydeder.Commits the database transaction.

CommitAsync(CancellationToken)

Veritabanı işlemini zaman uyumsuz olarak kaydeder.Asynchronously commits the database transaction.

(Devralındığı yer: DbTransaction)
CreateObjRef(Type)

Uzak bir nesneyle iletişim kurmak için kullanılan bir ara sunucu oluşturmak için gereken tüm bilgileri içeren bir nesne oluşturur.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Devralındığı yer: MarshalByRefObject)
Dispose()

Nesnesi tarafından tutulan kaynakları serbest bırakır.Releases the resources that are held by the object.

Dispose()

Tarafından kullanılan yönetilmeyen kaynakları serbest bırakır DbTransaction .Releases the unmanaged resources used by the DbTransaction.

(Devralındığı yer: DbTransaction)
Dispose(Boolean)

DbTransaction tarafından kullanılan yönetilmeyen kaynakları serbest bırakır ve yönetilen kaynakları isteğe bağlı olarak serbest bırakır.Releases the unmanaged resources used by the DbTransaction and optionally releases the managed resources.

(Devralındığı yer: DbTransaction)
DisposeAsync()

İşlem nesnesini zaman uyumsuz olarak atar.Asynchronously diposes the transaction object.

(Devralındığı yer: DbTransaction)
Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.Determines whether the specified object is equal to the current object.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi olarak işlev görür.Serves as the default hash function.

(Devralındığı yer: Object)
GetLifetimeService()
Kullanımdan kalktı.

Bu örnek için ömür ilkesini denetleyen geçerli ömür hizmeti nesnesini alır.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Devralındığı yer: MarshalByRefObject)
GetType()

TypeGeçerli örneği alır.Gets the Type of the current instance.

(Devralındığı yer: Object)
InitializeLifetimeService()
Kullanımdan kalktı.

Bu örnek için ömür ilkesini denetlemek üzere bir ömür hizmeti nesnesi alır.Obtains a lifetime service object to control the lifetime policy for this instance.

(Devralındığı yer: MarshalByRefObject)
MemberwiseClone()

Geçerli bir basit kopyasını oluşturur Object .Creates a shallow copy of the current Object.

(Devralındığı yer: Object)
MemberwiseClone(Boolean)

Geçerli nesnenin basit bir kopyasını oluşturur MarshalByRefObject .Creates a shallow copy of the current MarshalByRefObject object.

(Devralındığı yer: MarshalByRefObject)
Release(String)

Geçerli işlemde daha önce tanımlanan bir kayıt noktasını yok eder.Destroys a savepoint previously defined in the current transaction. Bu, sistemin işlem bitmeden önce bazı kaynakları geri almasına izin verir.This allows the system to reclaim some resources before the transaction ends.

(Devralındığı yer: DbTransaction)
ReleaseAsync(String, CancellationToken)

Geçerli işlemde daha önce tanımlanan bir kayıt noktasını yok eder.Destroys a savepoint previously defined in the current transaction. Bu, sistemin işlem bitmeden önce bazı kaynakları geri almasına izin verir.This allows the system to reclaim some resources before the transaction ends.

(Devralındığı yer: DbTransaction)
Rollback()

Bekleyen bir durumdan bir işlem geri kaydeder.Rolls back a transaction from a pending state.

Rollback(String)

Bekleme durumundaki bir işlemi geri kaydeder ve işlem ya da kayıt noktası adını belirtir.Rolls back a transaction from a pending state, and specifies the transaction or savepoint name.

RollbackAsync(CancellationToken)

Zaman uyumsuz bir işlemi bekleyen bir durumdan geri kaydeder.Asynchronously rolls back a transaction from a pending state.

(Devralındığı yer: DbTransaction)
RollbackAsync(String, CancellationToken)

Belirtilen kayıt noktası oluşturulduktan sonra yürütülen tüm komutları geri kaydeder.Rolls back all commands that were executed after the specified savepoint was established.

(Devralındığı yer: DbTransaction)
Save(String)

İşlemde işlemin bir parçasını geri almak için kullanılabilecek bir kayıt noktası oluşturur ve kayıt noktası adını belirtir.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)

İşlemde bir kayıt noktası oluşturur.Creates a savepoint in the transaction. Bu, kayıt noktasını geri alındıktan sonra yürütülen tüm komutların, işlem durumunun kayıt noktasında olduğu duruma geri yüklenmesini sağlar.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.

(Devralındığı yer: DbTransaction)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.Returns a string that represents the current object.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

IDbTransaction.Connection

DbConnectionİşlem artık geçerli değilse, işlemle ilişkili nesneyi veya null başvurusunu alır.Gets the DbConnection object associated with the transaction, or a null reference if the transaction is no longer valid.

(Devralındığı yer: DbTransaction)

Şunlara uygulanır

Ayrıca bkz.