Bagikan melalui


SqlTransaction Kelas

Definisi

Mewakili transaksi Transact-SQL yang akan dilakukan dalam database SQL Server. Kelas ini tidak dapat diwariskan.

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
Warisan
SqlTransaction
Warisan
Warisan
SqlTransaction
Penerapan

Contoh

Contoh berikut membuat SqlConnection dan SqlTransaction. Ini juga menunjukkan cara menggunakan BeginTransactionmetode , Commit, dan Rollback . Transaksi digulung balik pada kesalahan apa pun, atau jika dibuang tanpa terlebih dahulu dilakukan. Try / Catch penanganan kesalahan digunakan untuk menangani kesalahan apa pun saat mencoba menerapkan atau mengembalikan transaksi.

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

Keterangan

Aplikasi membuat SqlTransaction objek dengan memanggil BeginTransaction pada SqlConnection objek . Semua operasi berikutnya yang terkait dengan transaksi (misalnya, melakukan atau membatalkan transaksi), dilakukan pada SqlTransaction objek .

Catatan

Try / Catch penanganan pengecualian harus selalu digunakan saat melakukan atau mengembalikan SqlTransaction. Baik Commit dan Rollback hasilkan InvalidOperationException jika koneksi dihentikan atau jika transaksi telah digulung balik di server.

Untuk informasi selengkapnya tentang transaksi SQL Server, lihat Transaksi Eksplisit dan Transaksi Efisien Pengkodian.

Properti

Connection

Mendapatkan objek yang SqlConnection terkait dengan transaksi, atau null jika transaksi tidak lagi valid.

DbConnection

Ketika ditimpa di kelas turunan, mendapatkan objek yang DbConnection terkait dengan transaksi.

(Diperoleh dari DbTransaction)
IsolationLevel

IsolationLevel Menentukan untuk transaksi ini.

SupportsSavepoints

Mendapatkan nilai yang menunjukkan apakah instans ini DbTransaction mendukung titik penyimpanan database. Jika false, metode SaveAsync(String, CancellationToken), RollbackAsync(String, CancellationToken) dan ReleaseAsync(String, CancellationToken) serta rekan-rekan sinkron mereka diharapkan untuk melemparkan NotSupportedException.

(Diperoleh dari DbTransaction)

Metode

Commit()

Menerapkan transaksi database.

CommitAsync(CancellationToken)

Secara asinkron melakukan transaksi database.

(Diperoleh dari DbTransaction)
CreateObjRef(Type)

Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh.

(Diperoleh dari MarshalByRefObject)
Dispose()

Merilis sumber daya yang dipegang oleh objek .

Dispose()

Merilis sumber daya tidak terkelola yang digunakan oleh DbTransaction.

(Diperoleh dari DbTransaction)
Dispose(Boolean)

Merilis sumber daya tidak terkelola yang digunakan oleh DbTransaction dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari DbTransaction)
DisposeAsync()

Membuang objek transaksi secara asinkron.

(Diperoleh dari DbTransaction)
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetLifetimeService()
Kedaluwarsa.

Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
GetType()

Mendapatkan dari instans Type saat ini.

(Diperoleh dari Object)
InitializeLifetimeService()
Kedaluwarsa.

Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
MemberwiseClone(Boolean)

Membuat salinan dangkal objek saat ini MarshalByRefObject .

(Diperoleh dari MarshalByRefObject)
Release(String)

Menghancurkan titik penyimpanan yang sebelumnya ditentukan dalam transaksi saat ini. Ini memungkinkan sistem untuk mengklaim kembali beberapa sumber daya sebelum transaksi berakhir.

(Diperoleh dari DbTransaction)
ReleaseAsync(String, CancellationToken)

Menghancurkan titik penyimpanan yang sebelumnya ditentukan dalam transaksi saat ini. Ini memungkinkan sistem untuk mengklaim kembali beberapa sumber daya sebelum transaksi berakhir.

(Diperoleh dari DbTransaction)
Rollback()

Mengembalikan transaksi dari status tertunda.

Rollback(String)

Mengembalikan transaksi dari status tertunda, dan menentukan nama transaksi atau titik simpan.

RollbackAsync(CancellationToken)

Secara asinkron mengembalikan transaksi dari status tertunda.

(Diperoleh dari DbTransaction)
RollbackAsync(String, CancellationToken)

Mengembalikan semua perintah yang dijalankan setelah titik penyimpanan yang ditentukan dibuat.

(Diperoleh dari DbTransaction)
Save(String)

Membuat titik simpan dalam transaksi yang dapat digunakan untuk mengembalikan bagian dari transaksi, dan menentukan nama titik penyimpanan.

SaveAsync(String, CancellationToken)

Membuat titik simpan dalam transaksi. Ini memungkinkan semua perintah yang dijalankan setelah titik penyimpanan dibuat untuk digulung balik, memulihkan status transaksi ke apa yang ada pada saat titik penyimpanan.

(Diperoleh dari DbTransaction)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

IDbTransaction.Connection

Mendapatkan objek yang DbConnection terkait dengan transaksi, atau referensi null jika transaksi tidak lagi valid.

(Diperoleh dari DbTransaction)

Berlaku untuk

Lihat juga