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 : 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
- 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 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 |
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 |
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) |