数据库操作类中 添加一个.net 事务,要怎么写
private static SqlConnection connection;        public static SqlConnection Connection
        {
            get
            {
                string connectionString = ConfigurationManager.ConnectionStrings["BWHISConnectionString"].ConnectionString;
                
                if (connection == null)
                {
                    connection = new SqlConnection(connectionString);
                    connection.Open();                 
                }
                else if (connection.State == System.Data.ConnectionState.Closed)
                {
                    connection.Open();
                }
                else if (connection.State == System.Data.ConnectionState.Broken)
                {
                    connection.Close();
                    connection.Open();
                }
                return connection;
            }
        }        public static int ExecuteCommand(params SqlParameter[] values)
        {
            SqlCommand cmd = new SqlCommand();            cmd.Connection = Connection;
            //cmd.Transaction = Trans;
            cmd.CommandText = "Pro_UpdateBooksCatagory";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(values);
            int result = cmd.ExecuteNonQuery();
            return result;            throw new Exception(ex.ToString());
        }DBHelper 类添加 事务操作

解决方案 »

  1.   

    事务时跨多个 ExecuteCommand 的,你说你却什么参数?
      

  2.   

    这个我 有写
    public static int ExecuteCommand(string safeSql)
            {            SqlCommand cmd = new SqlCommand(safeSql, Connection);
                //cmd.Transaction = Trans;
                int result = cmd.ExecuteNonQuery();
                return result;            throw new Exception(ex.ToString());        }        public static int ExecuteCommand(string sql, params SqlParameter[] values)
            {            SqlCommand cmd = new SqlCommand(sql, Connection);
                //cmd.Transaction = Trans;
                cmd.Parameters.AddRange(values);
                return cmd.ExecuteNonQuery();
                
                throw new Exception(ex.ToString());
            }DAL层 调用DBHelper.ExecuteCommand(sql, para);时 。启动事务, commit rollback
      

  3.   

    using(SqlConnection con = new SqlConnection(""))  
     {   
      con.Open();  
      SqlTransaction myTran = con.BeginTransaction();  
      SqlCommand myCom = new SqlCommand();  
      myCom.Connection = con;  
      myCom.Transaction = myTran;  
      try  
      {  
      myCom.CommandText = "insert into A values ('测试','111')";  
      myCom.ExecuteNonQuery();  
      myTran.Commit();  
      Response.Write("成功执行");  
      }  
      catch (Exception Ex)  
      {  
      myTran.Rollback();  
      Response.Write(Ex.ToString());  
      Response.Write("写入数据库失败");  
      }  
      finally  
      {  
      con.Close();  
      }  
    }using (TransactionScope transScope = new TransactionScope()) 
     { 
    }