SqlTransaction Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili transaksi Transact-SQL yang akan dilakukan dalam database SQL Server. Kelas ini tidak dapat diwariskan.
public ref class SqlTransaction sealed : MarshalByRefObject, IDisposable, System::Data::IDbTransaction
public ref class SqlTransaction sealed : System::Data::Common::DbTransaction
public sealed class SqlTransaction : MarshalByRefObject, IDisposable, System.Data.IDbTransaction
public sealed class SqlTransaction : System.Data.Common.DbTransaction
type SqlTransaction = class
inherit MarshalByRefObject
interface IDbTransaction
interface IDisposable
type SqlTransaction = class
inherit DbTransaction
Public NotInheritable Class SqlTransaction
Inherits MarshalByRefObject
Implements IDbTransaction, IDisposable
Public NotInheritable Class SqlTransaction
Inherits DbTransaction
- Warisan
- Warisan
- 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 objek SqlConnection . Semua operasi berikutnya yang terkait dengan transaksi (misalnya, melakukan atau membatalkan transaksi), dilakukan pada SqlTransaction objek.
Note
Try
/
Catch penanganan pengecualian harus selalu digunakan saat menerapkan atau menggulung balik 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 Explicit dan Coding Transaksi Efisien.
Properti
| Nama | Deskripsi |
|---|---|
| Connection |
Mendapatkan objek yang SqlConnection terkait dengan transaksi, atau |
| DbConnection |
Ketika ditimpa dalam kelas turunan, mendapatkan objek yang DbConnection terkait dengan transaksi. (Diperoleh dari DbTransaction) |
| IsolationLevel |
IsolationLevel Menentukan untuk transaksi ini. |
Metode
| Nama | Deskripsi |
|---|---|
| Commit() |
Menerapkan transaksi database. |
| 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 yang tidak dikelola yang digunakan oleh DbTransaction. (Diperoleh dari DbTransaction) |
| Dispose(Boolean) |
Merilis sumber daya yang tidak dikelola yang DbTransaction digunakan oleh dan secara opsional merilis sumber daya terkelola. (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() |
Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| InitializeLifetimeService() |
Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini. (Diperoleh dari MarshalByRefObject) |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| MemberwiseClone(Boolean) |
Membuat salinan dangkal objek saat ini MarshalByRefObject . (Diperoleh dari MarshalByRefObject) |
| Rollback() |
Mengembalikan transaksi dari status tertunda. |
| Rollback(String) |
Mengembalikan transaksi dari status tertunda, dan menentukan nama transaksi atau titik penyimpanan. |
| Save(String) |
Membuat titik penyimpanan dalam transaksi yang dapat digunakan untuk mengembalikan bagian dari transaksi, dan menentukan nama titik penyimpanan. |
| ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IDbTransaction.Connection |
Mendapatkan objek yang DbConnection terkait dengan transaksi, atau referensi null jika transaksi tidak lagi valid. (Diperoleh dari DbTransaction) |