OracleConnection.BeginTransaction Метод

Определение

Начинает транзакцию в базе данных.Begins a transaction at the database.

Перегрузки

BeginTransaction()

Начинает транзакцию в базе данных.Begins a transaction at the database.

BeginTransaction(IsolationLevel)

Начинает транзакцию в базе данных с заданным значением IsolationLevel.Begins a transaction at the database with the specified IsolationLevel value.

BeginTransaction()

Начинает транзакцию в базе данных.Begins a transaction at the database.

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

Возвращаемое значение

OracleTransaction

Объект, представляющий новую транзакцию.An object representing the new transaction.

Исключения

Параллельные транзакции не поддерживаются.Parallel transactions are not supported.

Примеры

В следующем примере создаются OracleConnection и OracleTransaction .The following example creates an OracleConnection and an OracleTransaction. В нем также показано, как использовать BeginTransaction Commit методы, и Rollback .It also demonstrates how to use the BeginTransaction, Commit, and Rollback methods.

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

Комментарии

Для фиксации или отката транзакции необходимо явно использовать Commit Rollback методы или.To commit or roll back the transaction, you must explicitly use the Commit or Rollback methods.

Чтобы убедиться, что поставщик данных платформа .NET Framework для модели управления транзакциями Oracle работает правильно, не используйте другие модели управления транзакциями, например предоставляемые базой данных.To ensure that the .NET Framework Data Provider for Oracle transaction management model performs correctly, avoid using other transaction management models, such as those provided by the database.

Примечание

Если уровень изоляции не указан, используется уровень изоляции по умолчанию.If you do not specify an isolation level, the default isolation level is used. Чтобы указать уровень изоляции с помощью BeginTransaction метода, используйте BeginTransaction перегрузку.To specify an isolation level with the BeginTransaction method, use the BeginTransaction overload.

См. также раздел

Применяется к

BeginTransaction(IsolationLevel)

Начинает транзакцию в базе данных с заданным значением IsolationLevel.Begins a transaction at the database with the specified IsolationLevel value.

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

Параметры

il
IsolationLevel

Уровень изоляции транзакции для этого подключения.The transaction isolation level for this connection.

Возвращаемое значение

OracleTransaction

Объект, представляющий новую транзакцию.An object representing the new transaction.

Исключения

Параллельные транзакции не поддерживаются.Parallel transactions are not supported.

Примеры

В следующем примере создаются OracleConnection и OracleTransaction .The following example creates an OracleConnection and an OracleTransaction. В нем также показано, как использовать BeginTransaction Commit методы, и Rollback .It also demonstrates how to use the BeginTransaction, Commit, and Rollback methods.

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

Комментарии

Для фиксации или отката транзакции необходимо явно использовать Commit Rollback методы или.To commit or roll back the transaction, you must explicitly use the Commit or Rollback methods.

Чтобы убедиться, что поставщик данных платформа .NET Framework для модели управления транзакциями Oracle работает правильно, не используйте другие модели управления транзакциями, например предоставляемые базой данных.To ensure that the .NET Framework Data Provider for Oracle transaction management model performs correctly, avoid using other transaction management models, such as those provided by the database.

См. также раздел

Применяется к