这是与SQL SERVER中的事务是一致的亚?请看MSDN

解决方案 »

  1.   

    下面的示例创建一个 SqlConnection 和一个 SqlTransaction。它还演示如何使用 BeginTransaction、Commit 和 Rollback 方法。[Visual Basic] 
    Public Sub RunSqlTransaction(myConnString As String)
        Dim myConnection As New SqlConnection(myConnString)
        myConnection.Open()
        
        Dim myCommand As New SqlCommand()
        Dim myTrans As SqlTransaction
        
        ' Start a local transaction
        myTrans = myConnection.BeginTransaction()
        ' Must assign both transaction object and connection
        ' to Command 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
            myTrans.Rollback()
            Console.WriteLine("Error: {1}", e.Message)
            Console.WriteLine("Error reported by {1}.", e.Source)
            Console.WriteLine("Neither record was written to database.")
        Finally
            myConnection.Close()
        End Try
    End Sub 'RunSqlTransaction
    [C#] 
    public void RunSqlTransaction(string myConnString) 
     {
        SqlConnection myConnection = new SqlConnection(myConnString);
        myConnection.Open();    SqlCommand myCommand = new SqlCommand();
        SqlTransaction myTrans;    // Start a local transaction
        myTrans = myConnection.BeginTransaction();
        // Must assign both transaction object and connection
        // to Command 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)
        {
          myTrans.Rollback();
          Console.WriteLine("Error: {1}", e.Message);
          Console.WriteLine("Error reported by {1}.", e.Source);
          Console.WriteLine("Neither record was written to database.");
        }
        finally
        {
          myConnection.Close();
        }}ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemdatasqlclientsqltransactionclasstopic.htm