SqlTransaction Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een Transact-SQL transactie die moet worden uitgevoerd in een SQL Server-database. Deze klasse kan niet worden overgenomen.
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
- Overname
- Overname
- Implementeringen
Voorbeelden
In het volgende voorbeeld wordt een SqlConnection en een SqlTransaction. Het laat ook zien hoe u de BeginTransaction, Commiten Rollback methoden gebruikt. De transactie wordt teruggedraaid op een fout of als deze wordt verwijderd zonder eerst te worden doorgevoerd.
Try
/
Catch foutafhandeling wordt gebruikt om eventuele fouten af te handelen bij het doorvoeren of terugdraaien van de transactie.
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
Opmerkingen
De toepassing maakt een SqlTransaction object door het SqlConnection object aan te roepenBeginTransaction. Alle volgende bewerkingen die zijn gekoppeld aan de transactie (bijvoorbeeld het doorvoeren of afbreken van de transactie), worden uitgevoerd op het SqlTransaction object.
Note
Try
/
Catch uitzonderingsafhandeling moet altijd worden gebruikt bij het doorvoeren of terugdraaien van een SqlTransaction. Genereer InvalidOperationException een CommitRollback als de verbinding is beƫindigd of als de transactie al is teruggedraaid op de server.
Zie Explicit Transactions en Coding Efficient Transactions voor meer informatie over SQL Server transacties.
Eigenschappen
| Name | Description |
|---|---|
| Connection |
Hiermee wordt het SqlConnection object opgehaald dat is gekoppeld aan de transactie of |
| DbConnection |
Wanneer het object wordt overschreven in een afgeleide klasse, wordt het DbConnection object opgehaald dat aan de transactie is gekoppeld. (Overgenomen van DbTransaction) |
| IsolationLevel |
Hiermee geeft u de IsolationLevel voor deze transactie. |
Methoden
| Name | Description |
|---|---|
| Commit() |
De databasetransactie doorvoert. |
| CreateObjRef(Type) |
Hiermee maakt u een object dat alle relevante informatie bevat die nodig is om een proxy te genereren die wordt gebruikt om te communiceren met een extern object. (Overgenomen van MarshalByRefObject) |
| Dispose() |
Publiceert de resources die door het object worden bewaard. |
| Dispose() |
Publiceert de onbeheerde resources die worden gebruikt door de DbTransaction. (Overgenomen van DbTransaction) |
| Dispose(Boolean) |
Publiceert de niet-beheerde resources die worden gebruikt door de DbTransaction beheerde resources en brengt eventueel de beheerde resources vrij. (Overgenomen van DbTransaction) |
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetLifetimeService() |
Hiermee haalt u het huidige levensduurserviceobject op waarmee het levensduurbeleid voor dit exemplaar wordt beheerd. (Overgenomen van MarshalByRefObject) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| InitializeLifetimeService() |
Hiermee haalt u een levensduurserviceobject op om het levensduurbeleid voor dit exemplaar te beheren. (Overgenomen van MarshalByRefObject) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| MemberwiseClone(Boolean) |
Hiermee maakt u een ondiepe kopie van het huidige MarshalByRefObject object. (Overgenomen van MarshalByRefObject) |
| Rollback() |
Rolt een transactie terug van een status in behandeling. |
| Rollback(String) |
Hiermee wordt een transactie teruggedraaid van de status In behandeling en wordt de naam van de transactie of het savepoint opgegeven. |
| Save(String) |
Hiermee maakt u een savepoint in de transactie die kan worden gebruikt om een deel van de transactie terug te draaien en geeft u de naam van het savepoint op. |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| IDbTransaction.Connection |
Hiermee wordt het DbConnection object opgehaald dat is gekoppeld aan de transactie of een null-verwijzing als de transactie niet meer geldig is. (Overgenomen van DbTransaction) |