try..catch然后回滚.net c#web应用程序中已经运行的存储prod

时间:2011-05-10 05:07:07

标签: c# .net web-applications

有谁知道,我怎么能回滚已经运行的存储prod里面的try ... catch in .net c#?

示例:

如果我需要运行2个存储过程,则创建2个函数来运行每个存储的prod,并且这些函数将在try ... catch内部调用,第1个存储的prod运行成功,但是第2个存储的prod有错误和超时。在这种情况下,我可以在我的.net c#?

中回滚第一个存储的prod

1 个答案:

答案 0 :(得分:1)

看看

private static void DemoFunc() 
   {
      SqlConnection conn = new SqlConnection("");//conection string here
      SqlTransaction transaction;
      SqlCommand cmd;

      conn.Open();
      transaction = conn.BeginTransaction();
      try 
      {
         cmd = new SqlCommand("MySP1", conn, transaction);
         cmd.CommandType = CommandType.StoredProcedure;
         cmd.ExecuteNonQuery();

         cmd = new SqlCommand("MySP2", conn, transaction);
         cmd.CommandType = CommandType.StoredProcedure;
         cmd.ExecuteNonQuery();
         transaction.Commit();
      } 
      catch (SqlException sqlError) 
      {
         transaction.Rollback();
      }
      conn.Close();
   }

希望得到这个帮助。