简单实现主从非约束表的事务处理提交

1.假定一次提交3个表,1个主表1条记录,2个子表各3条记录,子表用DataGrid实现。
那么建立3个执行insert的存储过程,这3个存储过程要在事务之中一起实现。
    myConn.Open ();
    SqlCommand mySelectCommand=new SqlCommand();
    SqlTransaction myTran;
    myTran=myConn.BeginTransaction();
    mySelectCommand.Connection =myConn;
    mySelectCommand.Transaction =myTran;
//事务开始
    mySelectCommand.CommandText =SQL_Proc_A;
    mySelectCommand.CommandType =CommandType.StoredProcedure ;
    mySelectCommand.Parameters.Add (new SqlParameter ("@A1",SqlDbType... ));
    mySelectCommand.Parameters ["@A1"].Value =A1;    
    mySelectCommand.ExecuteNonQuery ();
//1个
    mySelectCommand.CommandText =SQL_Proc_B;
    mySelectCommand.CommandType =CommandType.StoredProcedure ;
    mySelectCommand.Parameters.Clear();
    mySelectCommand.Parameters.Add (new SqlParameter ("@B1",SqlDbType... ));
    mySelectCommand.Parameters ["@B1"].Value =B1;    
    mySelectCommand.ExecuteNonQuery ();
//2个
    mySelectCommand.CommandText =SQL_Proc_C;
    mySelectCommand.CommandType =CommandType.StoredProcedure ;
    mySelectCommand.Parameters.Clear();
    mySelectCommand.Parameters.Add (new SqlParameter ("@C1",SqlDbType... ));
    mySelectCommand.Parameters ["@C1"].Value =C1;    
    mySelectCommand.ExecuteNonQuery ();
//3个
   try
    {
     myTran.Commit();
    myConn.Close ();
    }
    catch(Exception ex)
    {
     myTran.Rollback ();
     throw new ApplicationException("Tran Error:"+ex.Message);
    }
//事务结束

你可能感兴趣的:(事务)