小弟在formview是用的自动绑定,实现对数据库的插入、修改很简单,几乎不用写什么代码自动绑定的时候对于数据库的操作完全是由asp.net控件自行完成的同时对另一个数据库表进行操作这两个操作怎么设置到一起成为一个原子操作呢?而且这两个操作是在不同的函数中,是在很头疼啊

解决方案 »

  1.   

    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
      

  2.   

    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();
        }
      

  3.   

    使用分布式事务,使用Com+组件作为业务规则层
      

  4.   

    http://www.cnblogs.com/lovecherry/archive/2005/04/11/135365.html