OracleConnection.BeginTransaction Yöntem

Tanım

Veritabanında bir işlem başlatır.

Aşırı Yüklemeler

BeginTransaction()

Veritabanında bir işlem başlatır.

BeginTransaction(IsolationLevel)

Veritabanında belirtilen IsolationLevel değerle bir işlem başlatır.

BeginTransaction()

Veritabanında bir işlem başlatır.

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

Döndürülenler

Yeni işlemi temsil eden bir nesne.

Özel durumlar

Paralel işlemler desteklenmez.

Örnekler

Aşağıdaki örnek bir OracleConnection ve OracleTransactionoluşturur. Ayrıca , Commitve Rollback yöntemlerinin BeginTransactionnasıl kullanılacağını da gösterir.

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

Açıklamalar

İşlemi işlemek veya geri almak için veya Rollback yöntemlerini açıkça kullanmanız Commit gerekir.

Oracle işlem yönetimi modeli için .NET Framework Veri Sağlayıcısının doğru şekilde çalıştığından emin olmak için veritabanı tarafından sağlananlar gibi diğer işlem yönetimi modellerini kullanmaktan kaçının.

Not

Bir yalıtım düzeyi belirtmezseniz, varsayılan yalıtım düzeyi kullanılır. yöntemiyle BeginTransaction bir yalıtım düzeyi belirtmek için aşırı yüklemeyi kullanın BeginTransaction .

Ayrıca bkz.

Şunlara uygulanır

BeginTransaction(IsolationLevel)

Veritabanında belirtilen IsolationLevel değerle bir işlem başlatır.

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

Parametreler

il
IsolationLevel

Bu bağlantı için işlem yalıtım düzeyi.

Döndürülenler

Yeni işlemi temsil eden bir nesne.

Özel durumlar

Paralel işlemler desteklenmez.

Örnekler

Aşağıdaki örnek bir OracleConnection ve OracleTransactionoluşturur. Ayrıca , Commitve Rollback yöntemlerinin BeginTransactionnasıl kullanılacağını da gösterir.

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

Açıklamalar

İşlemi işlemek veya geri almak için veya Rollback yöntemlerini açıkça kullanmanız Commit gerekir.

Oracle işlem yönetimi modeli için .NET Framework Veri Sağlayıcısının doğru şekilde çalıştığından emin olmak için veritabanı tarafından sağlananlar gibi diğer işlem yönetimi modellerini kullanmaktan kaçının.

Ayrıca bkz.

Şunlara uygulanır