Click to Rate and Give Feedback
MSDN
MSDN Library
.NET Development
Previous Versions
.NET Framework 1.1
.NET Framework
Reference
System.Data.OleDb
Methods

  Switch on low bandwidth view
This page is specific to
Microsoft Visual Studio 2003/.NET Framework 1.1

Other versions are also available for the following:
.NET Framework Class Library
OleDbConnection.BeginTransaction Method

Begins a database transaction.

Overload List

Begins a database transaction.

[Visual Basic] Overloads Public Function BeginTransaction() As OleDbTransaction
[C#] public OleDbTransaction BeginTransaction();
[C++] public: OleDbTransaction* BeginTransaction();
[JScript] public function BeginTransaction() : OleDbTransaction;

Begins a database transaction with the current IsolationLevel value.

[Visual Basic] Overloads Public Function BeginTransaction(IsolationLevel) As OleDbTransaction
[C#] public OleDbTransaction BeginTransaction(IsolationLevel);
[C++] public: OleDbTransaction* BeginTransaction(IsolationLevel);
[JScript] public function BeginTransaction(IsolationLevel) : OleDbTransaction;

Example

[Visual Basic, C#, C++] The following example creates an OleDbConnection and an OleDbTransaction. It also demonstrates how to use the BeginTransaction, a Commit, and Rollback methods.

[Visual Basic, C#, C++] Note   This example shows how to use one of the overloaded versions of BeginTransaction. For other examples that might be available, see the individual overload topics.
[Visual Basic] 
Public Sub RunOleDbTransaction(myConnString As String)
    Dim myConnection As New OleDbConnection(myConnString)
    myConnection.Open()
    
    Dim myCommand As OleDbCommand = myConnection.CreateCommand()
    Dim myTrans As OleDbTransaction
       
    ' Start a local transaction
    myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted)
    ' Assign transaction object for a pending local transaction
    myCommand.Connection = myConnection
    myCommand.Transaction = myTrans
       
    Try
      myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"
      myCommand.ExecuteNonQuery()
      myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"
      myCommand.ExecuteNonQuery()
      myTrans.Commit()
      Console.WriteLine("Both records are written to database.")
    Catch e As Exception
      Try
        myTrans.Rollback()
      Catch ex As OleDbException
        If Not myTrans.Connection Is Nothing Then
          Console.WriteLine("An exception of type " & ex.GetType().ToString() & _
                            " was encountered while attempting to roll back the transaction.")
        End If
      End Try
       
      Console.WriteLine("An exception of type " & e.GetType().ToString() & _
                      "was encountered while inserting the data.")
      Console.WriteLine("Neither record was written to database.")
    Finally
      myConnection.Close()
    End Try
End Sub

[C#] 
public void RunOleDbTransaction(string myConnString)
{
   OleDbConnection myConnection = new OleDbConnection(myConnString);
   myConnection.Open();

   OleDbCommand myCommand = myConnection.CreateCommand();
   OleDbTransaction myTrans;

   // Start a local transaction
   myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
   // Assign transaction object for a pending local transaction
   myCommand.Connection = myConnection;
   myCommand.Transaction = myTrans;

   try
   {
     myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
     myCommand.ExecuteNonQuery();
     myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
     myCommand.ExecuteNonQuery();
     myTrans.Commit();
     Console.WriteLine("Both records are written to database.");
   }
   catch(Exception e)
   {
     try
     {
       myTrans.Rollback();
     }
     catch (OleDbException ex)
     {
       if (myTrans.Connection != null)
       {
         Console.WriteLine("An exception of type " + ex.GetType() +
                           " was encountered while attempting to roll back the transaction.");
       }
     }
   
     Console.WriteLine("An exception of type " + e.GetType() +
                       " was encountered while inserting the data.");
     Console.WriteLine("Neither record was written to database.");
   }
   finally 
   {
     myConnection.Close();
   }
}

[C++] 
public:
 void RunOleDbTransaction(String* myConnString)
 {
    OleDbConnection* myConnection = new OleDbConnection(myConnString);
    myConnection->Open();

    OleDbCommand* myCommand = myConnection->CreateCommand();
    OleDbTransaction* myTrans;

    // Start a local transaction
    myTrans = myConnection->BeginTransaction(IsolationLevel::ReadCommitted);
    // Assign transaction object for a pending local transaction
    myCommand->Connection = myConnection;
    myCommand->Transaction = myTrans;

    try
    {
      myCommand->CommandText = S"Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')";
      myCommand->ExecuteNonQuery();
      myCommand->CommandText = S"Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')";
      myCommand->ExecuteNonQuery();
      myTrans->Commit();
      Console::WriteLine(S"Both records are written to database.");
    }
    catch(Exception* e)
    {
      try
      {
        myTrans->Rollback();
      }
      catch (OleDbException* ex)
      {
        if (myTrans->Connection != 0)
        {
          Console::WriteLine(S"An exception of type {0} was encountered while attempting to roll back the transaction.", ex->GetType());
        }
      }
    
      Console::WriteLine(S"An exception of type {0} was encountered while inserting the data.", e->GetType());
      Console::WriteLine(S"Neither record was written to database.");
    }
    __finally 
    {
      myConnection->Close();
    }
 }

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.

See Also

OleDbConnection Class | OleDbConnection Members | System.Data.OleDb Namespace

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker