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 sealed class SqlTransaction : System.Data.Common.DbTransaction
type SqlTransaction = class
    inherit DbTransaction
Public NotInheritable Class SqlTransaction
Inherits DbTransaction
Warisan
SqlTransaction

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.

using Microsoft.Data.SqlClient;

namespace Transaction1CS
{
    class Program
    {
        static void Main()
        {
            string connectionString =
                "Persist Security Info=False;Integrated Security=SSPI;database=Northwind;server=(local)";
            ExecuteSqlTransaction(connectionString);
            Console.ReadLine();
        }
        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);
                    }
                }
            }
        }
    }
}

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.

IsolationLevel

IsolationLevel Menentukan untuk transaksi ini.

Metode

Commit()

Menerapkan transaksi database.

Rollback()

Mengembalikan transaksi dari status tertunda.

Rollback(String)

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

Save(String)

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

Berlaku untuk