那么建立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);
}
//事务结束