OracleConnection.BeginTransaction Metodo

Definizione

Avvia una transazione nel database.Begins a transaction at the database.

Overload

BeginTransaction()

Avvia una transazione nel database.Begins a transaction at the database.

BeginTransaction(IsolationLevel)

Avvia una transazione nel database con il valore di IsolationLevel specificato.Begins a transaction at the database with the specified IsolationLevel value.

BeginTransaction()

Avvia una transazione nel database.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

Restituisce

Oggetto che rappresenta la nuova transazione.An object representing the new transaction.

Eccezioni

Le transazioni parallele non sono supportate.Parallel transactions are not supported.

Esempi

Nell'esempio seguente vengono creati un OracleConnection e una OracleTransaction.The following example creates an OracleConnection and an OracleTransaction. Viene inoltre illustrato come utilizzare i metodi BeginTransaction, Commite 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

Commenti

Per eseguire il commit o il rollback della transazione, è necessario usare in modo esplicito i metodi Commit o Rollback.To commit or roll back the transaction, you must explicitly use the Commit or Rollback methods.

Per assicurarsi che il .NET Framework provider di dati per il modello di gestione delle transazioni Oracle venga eseguito correttamente, evitare di utilizzare altri modelli di gestione delle transazioni, ad esempio quelli forniti dal database.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.

Nota

Se non si specifica un livello di isolamento, viene usato il livello di isolamento predefinito.If you do not specify an isolation level, the default isolation level is used. Per specificare un livello di isolamento con il metodo BeginTransaction, usare l'overload di BeginTransaction.To specify an isolation level with the BeginTransaction method, use the BeginTransaction overload.

Vedi anche

BeginTransaction(IsolationLevel)

Avvia una transazione nel database con il valore di IsolationLevel specificato.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

Parametri

il
IsolationLevel

Livello di isolamento della transazione per questa connessione.The transaction isolation level for this connection.

Restituisce

Oggetto che rappresenta la nuova transazione.An object representing the new transaction.

Eccezioni

Le transazioni parallele non sono supportate.Parallel transactions are not supported.

Esempi

Nell'esempio seguente vengono creati un OracleConnection e una OracleTransaction.The following example creates an OracleConnection and an OracleTransaction. Viene inoltre illustrato come utilizzare i metodi BeginTransaction, Commite 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

Commenti

Per eseguire il commit o il rollback della transazione, è necessario usare in modo esplicito i metodi Commit o Rollback.To commit or roll back the transaction, you must explicitly use the Commit or Rollback methods.

Per assicurarsi che il .NET Framework provider di dati per il modello di gestione delle transazioni Oracle venga eseguito correttamente, evitare di utilizzare altri modelli di gestione delle transazioni, ad esempio quelli forniti dal database.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.

Vedi anche

Si applica a