如题,看了一下微软的SQLHelper.cs,但找不到事务控制的函数和关闭数据库连接的语句,感到很疑惑,就算它不提供事务控制,难道不用释放数据库连接这些资源的吗?了解的高手指点一下,谢谢 ^_^

解决方案 »

  1.   

    它使用using子句的
    using(SqlConnection conn=new SqlConnection("string"))
    {}
    using子句可以自动的关闭数据库连接更广一点的说,凡是实现了IDisposal(?好像是这个接口)的,using子句都可以自动在适当的时候清理资源的
      

  2.   

    注意这个方法;
    public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) SqlTransaction就是事务啊,在数据访问层中,多次调用,共用一个SqlTransaction,最后由SqlTransaction的Commit方法来提交事务,这就共用一个事务。
      

  3.   

    我记得是初始化数据库的地方都用using语句了;
    事务应该是用了SqlTransaction,你仔细看看吧。
      

  4.   

    SQLHelper是提供事务处理的,但他写得不是很好,复用性不是很强,在业务逻辑层很难实现嵌套、代码的复用等等
      

  5.   

    事务处理是有的,联结关闭的确没有
    用using自动会关闭连接!
      

  6.   

    注意这个方法;C# code    public static int ExecuteNonQuery(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)SqlTransaction就是事务啊,在数据访问层中,多次调用,共用一个SqlTransaction,最后由SqlTransaction的Commit方法来提交事务,这就共用一个事务。--------------------------------------------------------
    好像没有见到什么地方调用了SqlTransaction的Commit,难道在 BBL 调用了 SQLHelper的函数后,再在BBL调用事务的commit方法?
      

  7.   

    PetShop比较简单,没有很复杂的逻辑,可能就没有用到Commit方法
    如果业务逻辑复杂,多次读数据库取数据,那么就要用到事务