SqlTransaction Klas

Definitie

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
SqlTransaction
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 null als de transactie niet meer geldig is.

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)

Van toepassing op

Zie ook