如题:为什么在微软的SqlHelper.cs中多次用到事务SqlTransaction,但却没有看到事务提交Commit()和回滚Rollback()?

解决方案 »

  1.   

    从来都是自己写,没用过这个类~~~~再说,那个Commit和Rollback应该在数据库中配置事务的吧嘿嘿~~~
      

  2.   

    /// <summary>
    /// 执行多条SQL语句,实现数据库事务。
    /// </summary>
    /// <param name="SQLStringList">SQL语句数组</param>
    public static int ExecuteSqlTransaction(List<string> SQLStringList)
    {
    using (SqlConnection conn = new SqlConnection(ConnectionString))
    {
    conn.Open();
    using (SqlTransaction trans = conn.BeginTransaction())
    { using (SqlCommand cmd = new SqlCommand())
    {
    try
    {
    //循环
    int val = 0;
    foreach (string sqlStr in SQLStringList)
    {
    PrepareCommand(cmd, conn, trans, CommandType.Text, sqlStr, null);
    val += cmd.ExecuteNonQuery();
    cmd.Parameters.Clear();
    }
    trans.Commit();
    return val;
    }
    catch
    {
    trans.Rollback();
    return 0;
    }
    }
    }
    }
    }
    我这个有的,那个sqlhelper代码也不规范,我改了一些 不知道是不是原来那个了
      

  3.   


                SqlParameter[] param = new SqlParameter[1];
                SqlConnection conn = new SqlConnection(SqlHelper.conn);
                SqlTransaction trans = conn.BeginTransaction();
                try
                {
                    SqlHelper.ExecuteNonQuery(trans, CommandType.Text, "", param);
                    SqlHelper.ExecuteNonQuery(trans, CommandType.Text, "", param);
                    trans.Commit();
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                }
    自己提交自己滚
      

  4.   

    不过你可以自己写一个sqlhelper类啊,只需要写一个之后可以一直用了,哈哈,这几天我也在学着写这个类呢
      

  5.   

    如果自己提交自己滚,数据访问层和SqlHelper的耦合度比较高,不是很好。