SqlTransaction Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar en Transact-SQL transaktion som ska göras i en SQL Server databas. Det går inte att ärva den här klassen.
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
- Arv
- Arv
- Implementeringar
Exempel
I följande exempel skapas en SqlConnection och en SqlTransaction. Det visar också hur du använder BeginTransactionmetoderna , Commitoch Rollback . Transaktionen återställs vid eventuella fel eller om den tas bort utan att först checkas in.
Try
/
Catch felhantering används för att hantera eventuella fel vid försök att checka in eller återställa transaktionen.
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
Kommentarer
Programmet skapar ett SqlTransaction objekt genom att anropa BeginTransaction objektet SqlConnection . Alla efterföljande åtgärder som är associerade med transaktionen (till exempel att checka in eller avbryta transaktionen) utförs på SqlTransaction objektet.
Note
Try
/
Catch undantagshantering bör alltid användas vid incheckning eller återställning av en SqlTransaction. Både Commit och Rollback genererar en InvalidOperationException om anslutningen avslutas eller om transaktionen redan har återställts på servern.
Mer information om SQL Server transaktioner finns i Explicit Transactions and Coding Efficient Transactions.
Egenskaper
| Name | Description |
|---|---|
| Connection |
Hämtar objektet SqlConnection som är associerat med transaktionen eller |
| DbConnection |
När det åsidosättas i en härledd klass hämtar det objekt som DbConnection är associerat med transaktionen. (Ärvd från DbTransaction) |
| IsolationLevel |
Anger för den IsolationLevel här transaktionen. |
Metoder
| Name | Description |
|---|---|
| Commit() |
Genomför databastransaktionen. |
| CreateObjRef(Type) |
Skapar ett objekt som innehåller all relevant information som krävs för att generera en proxy som används för att kommunicera med ett fjärrobjekt. (Ärvd från MarshalByRefObject) |
| Dispose() |
Frigör de resurser som innehas av objektet. |
| Dispose() |
Släpper de ohanterade resurser som används av DbTransaction. (Ärvd från DbTransaction) |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av DbTransaction och släpper eventuellt de hanterade resurserna. (Ärvd från DbTransaction) |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetLifetimeService() |
Hämtar det aktuella livslängdstjänstobjektet som styr livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| InitializeLifetimeService() |
Hämtar ett tjänstobjekt för livslängd för att styra livslängdsprincipen för den här instansen. (Ärvd från MarshalByRefObject) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| MemberwiseClone(Boolean) |
Skapar en ytlig kopia av det aktuella MarshalByRefObject objektet. (Ärvd från MarshalByRefObject) |
| Rollback() |
Återställer en transaktion från ett väntande tillstånd. |
| Rollback(String) |
Återställer en transaktion från ett väntande tillstånd och anger transaktions- eller savepoint-namnet. |
| Save(String) |
Skapar en savepoint i transaktionen som kan användas för att återställa en del av transaktionen och anger namnet på sparandepunkten. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IDbTransaction.Connection |
Hämtar objektet DbConnection som är associerat med transaktionen eller en null-referens om transaktionen inte längre är giltig. (Ärvd från DbTransaction) |