Freigeben über


OdbcTransaction-Klasse

Stellt eine SQL-Transaktion dar, die in einer Datenquelle vorgenommen werden soll. Die Klasse kann nicht geerbt werden.

Namespace: System.Data.Odbc
Assembly: System.Data (in system.data.dll)

Syntax

'Declaration
Public NotInheritable Class OdbcTransaction
    Inherits DbTransaction
'Usage
Dim instance As OdbcTransaction
public sealed class OdbcTransaction : DbTransaction
public ref class OdbcTransaction sealed : public DbTransaction
public final class OdbcTransaction extends DbTransaction
public final class OdbcTransaction extends DbTransaction

Hinweise

Die Anwendung erstellt ein OdbcTransaction-Objekt durch Aufrufen von BeginTransaction für das OdbcConnection-Objekt. Alle nachfolgenden Operationen, die der Transaktion zugeordnet sind (z. B. ein Commit oder Abbruch der Transaktion), werden für das OdbcTransaction-Objekt ausgeführt.

Beispiel

Im folgenden Beispiel wird eine OdbcConnection und eine OdbcTransaction erstellt. Darüber hinaus wird die Verwendung der Methoden BeginTransaction, Commit und Rollback veranschaulicht.

Public Sub ExecuteTransaction(ByVal connectionString As String)

    Using connection As New OdbcConnection(connectionString)
        Dim command As New OdbcCommand()
        Dim transaction As OdbcTransaction

        ' Set the Connection to the new OdbcConnection.
        command.Connection = connection

        ' Open the connection and execute the transaction.
        Try
            connection.Open()

            ' Start a local transaction.
            transaction = connection.BeginTransaction()

            ' Assign transaction object for a pending local transaction.
            command.Connection = connection
            command.Transaction = transaction

            ' Execute the commands.
            command.CommandText = _
                "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
            command.ExecuteNonQuery()
            command.CommandText = _
                "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"
            command.ExecuteNonQuery()

            ' Commit the transaction.
            transaction.Commit()
            Console.WriteLine("Both records are written to database.")

        Catch ex As Exception
            Console.WriteLine(ex.Message)
            ' Try to rollback the transaction
            Try
                transaction.Rollback()

            Catch
                ' Do nothing here; transaction is not active.
            End Try
        End Try
        ' The connection is automatically closed when the
        ' code exits the Using block.
    End Using
End Sub
public static void ExecuteTransaction(string connectionString)
{
    using (OdbcConnection connection =
               new OdbcConnection(connectionString))
    {
        OdbcCommand command = new OdbcCommand();
        OdbcTransaction transaction = null;

        // Set the Connection to the new OdbcConnection.
        command.Connection = connection;

        // Open the connection and execute the transaction.
        try
        {
            connection.Open();

            // Start a local transaction
            transaction = connection.BeginTransaction();

            // Assign transaction object for a pending local transaction.
            command.Connection = connection;
            command.Transaction = transaction;

            // Execute the commands.
            command.CommandText =
                "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
            command.ExecuteNonQuery();
            command.CommandText =
                "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
            command.ExecuteNonQuery();

            // Commit the transaction.
            transaction.Commit();
            Console.WriteLine("Both records are written to database.");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
            try
            {
                // Attempt to roll back the transaction.
                transaction.Rollback();
            }
            catch
            {
                // Do nothing here; transaction is not active.
            }
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }

Vererbungshierarchie

System.Object
   System.MarshalByRefObject
     System.Data.Common.DbTransaction
      System.Data.Odbc.OdbcTransaction

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1

Siehe auch

Referenz

OdbcTransaction-Member
System.Data.Odbc-Namespace
OdbcDataAdapter-Klasse
OdbcConnection-Klasse

Weitere Ressourcen

Durchführen von Transaktionen