Freigeben über


OracleConnection.BeginTransaction Methode

Definition

Beginnt eine Transaktion an der Datenbank.

Überlädt

BeginTransaction()

Beginnt eine Transaktion an der Datenbank.

BeginTransaction(IsolationLevel)

Beginnt eine Transaktion an der Datenbank mit dem angegebenen IsolationLevel-Wert.

BeginTransaction()

Beginnt eine Transaktion an der Datenbank.

public:
 System::Data::OracleClient::OracleTransaction ^ BeginTransaction();
public System.Data.OracleClient.OracleTransaction BeginTransaction ();
member this.BeginTransaction : unit -> System.Data.OracleClient.OracleTransaction
override this.BeginTransaction : unit -> System.Data.OracleClient.OracleTransaction
Public Function BeginTransaction () As OracleTransaction

Gibt zurück

Ein Objekt, das die neue Transaktion darstellt.

Ausnahmen

Parallele Transaktionen werden nicht unterstützt.

Beispiele

Das folgende Beispiel erstellt eine OracleConnection und ein OracleTransaction. Außerdem wird veranschaulicht, wie die BeginTransactionMethoden , Commitund Rollback verwendet werden.

public void RunOracleTransaction(string connectionString)
{
    using (OracleConnection connection = new OracleConnection(connectionString))
    {
        connection.Open();

        OracleCommand command = connection.CreateCommand();
        OracleTransaction transaction;

        // Start a local transaction
        transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
        // Assign transaction object for a pending local transaction
        command.Transaction = transaction;

        try
        {
            command.CommandText =
                "INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')";
            command.ExecuteNonQuery();
            command.CommandText =
                "INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')";
            command.ExecuteNonQuery();
            transaction.Commit();
            Console.WriteLine("Both records are written to database.");
        }
        catch (Exception e)
        {
            transaction.Rollback();
            Console.WriteLine(e.ToString());
            Console.WriteLine("Neither record was written to database.");
        }
    }
}
Public Sub RunOracleTransaction(ByVal connectionString As String)
    Using connection As New OracleConnection(connectionString)
        connection.Open()

        Dim command As OracleCommand = connection.CreateCommand()
        Dim transaction As OracleTransaction

        ' Start a local transaction
        transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)
        ' Assign transaction object for a pending local transaction
        command.Transaction = transaction

        Try
            command.CommandText = _
                "INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')"
            command.ExecuteNonQuery()
            command.CommandText = _
                "INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')"
            command.ExecuteNonQuery()
            transaction.Commit()
            Console.WriteLine("Both records are written to database.")
        Catch e As Exception
            transaction.Rollback()
            Console.WriteLine(e.ToString())
            Console.WriteLine("Neither record was written to database.")
        End Try
    End Using
End Sub

Hinweise

Um die Transaktion zu committen oder ein Rollback auszuführen, müssen Sie explizit die -Methode oder Rollback verwendenCommit.

Um sicherzustellen, dass das .NET Framework-Datenanbieter für Oracle-Transaktionsverwaltungsmodell ordnungsgemäß funktioniert, vermeiden Sie die Verwendung anderer Transaktionsverwaltungsmodelle, z. B. der von der Datenbank bereitgestellten.

Hinweis

Wenn Sie keine Isolationsstufe angeben, wird die Standardisolationsstufe verwendet. Verwenden Sie die -Überladung, um eine Isolationsstufe mit der BeginTransactionBeginTransaction -Methode anzugeben.

Weitere Informationen

Gilt für:

BeginTransaction(IsolationLevel)

Beginnt eine Transaktion an der Datenbank mit dem angegebenen IsolationLevel-Wert.

public:
 System::Data::OracleClient::OracleTransaction ^ BeginTransaction(System::Data::IsolationLevel il);
public System.Data.OracleClient.OracleTransaction BeginTransaction (System.Data.IsolationLevel il);
member this.BeginTransaction : System.Data.IsolationLevel -> System.Data.OracleClient.OracleTransaction
override this.BeginTransaction : System.Data.IsolationLevel -> System.Data.OracleClient.OracleTransaction
Public Function BeginTransaction (il As IsolationLevel) As OracleTransaction

Parameter

il
IsolationLevel

Der Transaktionsisolationsgrad für diese Verbindung.

Gibt zurück

Ein Objekt, das die neue Transaktion darstellt.

Ausnahmen

Parallele Transaktionen werden nicht unterstützt.

Beispiele

Das folgende Beispiel erstellt eine OracleConnection und ein OracleTransaction. Außerdem wird veranschaulicht, wie die BeginTransactionMethoden , Commitund Rollback verwendet werden.

public void RunOracleTransaction(string connectionString)
{
    using (OracleConnection connection = new OracleConnection(connectionString))
    {
        connection.Open();

        OracleCommand command = connection.CreateCommand();
        OracleTransaction transaction;

        // Start a local transaction
        transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
        // Assign transaction object for a pending local transaction
        command.Transaction = transaction;

        try
        {
            command.CommandText =
                "INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')";
            command.ExecuteNonQuery();
            command.CommandText =
                "INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')";
            command.ExecuteNonQuery();
            transaction.Commit();
            Console.WriteLine("Both records are written to database.");
        }
        catch (Exception e)
        {
            transaction.Rollback();
            Console.WriteLine(e.ToString());
            Console.WriteLine("Neither record was written to database.");
        }
    }
}
Public Sub RunOracleTransaction(ByVal connectionString As String)
    Using connection As New OracleConnection(connectionString)
        connection.Open()

        Dim command As OracleCommand = connection.CreateCommand()
        Dim transaction As OracleTransaction

        ' Start a local transaction
        transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted)
        ' Assign transaction object for a pending local transaction
        command.Transaction = transaction

        Try
            command.CommandText = _
                "INSERT INTO Dept (DeptNo, Dname, Loc) values (50, 'TECHNOLOGY', 'DENVER')"
            command.ExecuteNonQuery()
            command.CommandText = _
                "INSERT INTO Dept (DeptNo, Dname, Loc) values (60, 'ENGINEERING', 'KANSAS CITY')"
            command.ExecuteNonQuery()
            transaction.Commit()
            Console.WriteLine("Both records are written to database.")
        Catch e As Exception
            transaction.Rollback()
            Console.WriteLine(e.ToString())
            Console.WriteLine("Neither record was written to database.")
        End Try
    End Using
End Sub

Hinweise

Um die Transaktion zu committen oder ein Rollback auszuführen, müssen Sie explizit die -Methode oder Rollback verwendenCommit.

Um sicherzustellen, dass das .NET Framework-Datenanbieter für Oracle-Transaktionsverwaltungsmodell ordnungsgemäß funktioniert, vermeiden Sie die Verwendung anderer Transaktionsverwaltungsmodelle, z. B. der von der Datenbank bereitgestellten.

Weitere Informationen

Gilt für: