• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
红色石头
热情的血液+石头的冰冷
博客园    首页    新随笔    联系   管理    订阅  订阅
事务处理

sqlhelper.cs增加事务处理代码
  #region 事务创建处理
  public  static SqlTransaction BeginTransaction(string con)
  {
   SqlConnection connection = new SqlConnection(con);
   connection.Open();
   SqlTransaction tran = connection.BeginTransaction();
   return tran;
  }  
  public static int TransExecuteNonQuery(string sqlconnectingstring,CommandType commandtype,string commandText,params SqlParameter[] commandParameters)
  {
   int returnVule;
   using(SqlTransaction tran = BeginTransaction(sqlconnectingstring))
   {
    try
    {
     returnVule = ExecuteNonQuery(
            tran,
            commandtype,
            commandText,
            commandParameters);      
     returnVule =1;
     tran.Commit();
     
    }
    catch
    {
     returnVule =0;
     tran.Rollback();     
    }
   }
   return returnVule;
  }
  public static object TransExecuteScalar(string sqlconnectingstring, CommandType commandType, string commandText, params SqlParameter[] commandParameters)
  {
   object reval = null;
   using(SqlTransaction tran = BeginTransaction(sqlconnectingstring))
   {
    try
    {
     reval = ExecuteScalar(
          tran,
          commandType,
          commandText,
          commandParameters);
     tran.Commit();
     return reval;
    }
    catch
    {
     tran.Rollback();
     return null;
    }
   }   
  }
  #endregion

为了保证数据完整性,多个插入语句必须采用事务处理
//test.cs
public bool Savexx(ZfJbXx zfjbxx,string cymj)
  {
   sql1="INSERT INTO tablename(Id,col1,col2) VALUES(@Id,@col1,@col2)   update tablename2 set col=@col";
   sql2="INSERT INTO tablename3(Id,col1,col2) VALUES(@Id,@col1,@col2)";

   //参数设置(略)

   using(SqlTransaction tran = SqlHelper.BeginTransaction(SqlHelper.DBConnectionString))
   {
    try
    {     
     //SqlHelper.TransExecuteNonQuery(tran,CommandType.Text,sql1,parms);
     //SqlHelper.TransExecuteNonQuery(tran,CommandType.Text,sql2,parms);
     //更正为
     SqlHelper.ExecuteNonQuery(tran,CommandType.Text,sql1,parms);
     SqlHelper.ExecuteNonQuery(tran,CommandType.Text,sql2,parms);
     tran.Commit();
     
     return true;
    }
    catch
    {
     tran.Rollback();
     return false;
    }
   }
  

posted on 2006-08-21 17:28  红色石头  阅读(663)  评论(3)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3