DB2Connection.BeginTransaction (IsolationLevel) 方法

在具有指定 IsolationLevel 值的資料庫上開始交易。

名稱空間:
IBM.Data.DB2
組件:
IBM.Data.DB2 (在 IBM.Data.DB2.dll中)

語法

isolevelisolevelisolevelisolevel
[Visual Basic]
Overloads Public Function BeginTransaction( _
   ByVal  As IsolationLevel _
) As DB2Transaction

[C#]
public DB2Transaction
 BeginTransaction(
   IsolationLevel 
);
[C++]
public: DB2Transaction
* BeginTransaction(
   IsolationLevel 
);
[JScript]
public function BeginTransaction(
    : IsolationLevel
) : DB2Transaction
;

參數

isolevel
此連線的交易隔離層次。 如果您未指定隔離層次,則會使用 IBM® Data Server Provider for .NET 的預設隔離層次。

回覆值

代表新交易的物件。

異常狀況

異常狀況類型 條件
InvalidOperationException 交易目前處於作用中。 不支援平行交易。

備註

如果要確定或回復交易,您必須明確使用 DB2®交易 .CommitDB2Transaction.Rollback 方法。

範例

[Visual Basic , C#] 下列範例會建立 DB2連線DB2交易。 它也示範如何使用 BeginTransactionDB2交易 .CommitDB2Transaction.Rollback 方法。

[Visual Basic]
Public Sub RunDB2Transaction(myConnString As String)
    Dim myConnection As New DB2Connection(myConnString)
    myConnection.Open()

    Dim myCommand As New DB2Command()
    Dim myTrans As DB2Transaction

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

    Try
        myCommand.CommandText = "Insert into STAFF (ID, NAME) VALUES (...)"
        myCommand.ExecuteNonQuery()
        myCommand.CommandText = "Insert into STAFF (ID, NAME) VALUES (...)"
        myCommand.ExecuteNonQuery()
        myTrans.Commit()
        Console.WriteLine("Both records are written to database.")
    Catch e As Exception
        myTrans.Rollback()
        Console.WriteLine(e.ToString())
        Console.WriteLine("Neither record was written to database.")
    Finally
        myConnection.Close()
    End Try
End Sub

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

   DB2Command myCommand = new DB2Command();
   DB2Transaction myTrans;

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

   try
   {
     myCommand.CommandText = "Insert into STAFF (ID, NAME) VALUES (...)";
     myCommand.ExecuteNonQuery();
     myCommand.CommandText = "Insert into STAFF (ID, NAME) VALUES (...)";
     myCommand.ExecuteNonQuery();
     myTrans.Commit();
     Console.WriteLine("Both records are written to database.");
   }
   catch(Exception e)
   {
     myTrans.Rollback();
     Console.WriteLine(e.ToString());
     Console.WriteLine("Neither record was written to database.");
   }
   finally
   {
     myConnection.Close();
   }
}