对于数据库的连接我有两种方法,请大家指点:
1、在WEB请求开始时即打开一个连接,在WEB请求结束时关闭该连接。这样也就是一个请求只打开一次数据库连接。
2、在数据库查询时打开数据库连接,在查询完毕后就关闭连接。这样的话,如果一次页面请求有多次数据库查询(通常这样),就会有多次数据库连接的打开与关闭。请大家指点,这两种方法哪个更好?请说说好在哪里?理由?谢谢!!!

解决方案 »

  1.   

    using (SqlConnection conn = GetConnection())
    {
       myCoder;
    }
    在GetConnection中有conn.Open()的。
    用以上方法,
    这样就不用conn.Close()了吗?
      

  2.   

    用2 ,及时的打开,关闭连接 最好~ 数据库不是那么娇贵的, ado.net中有connection pool  不一定每次都开新的连接~ 
    ------
    如果使用的是 OleDbConnection 类,则连接池将由提供程序自动处理,您不必自己进行管理。
    如果使用的是 SqlConnection 类,则连接池被隐式管理,但也提供选项允许您自己管理池。
    在连接字符串中指定:
    pooling =true;//默认为true
    connection lifetime=5;//默认为0
    min pool size=1;//默认为0
    max pool size=50“;//默认为100
      

  3.   

    有时候你的页面上只用一个连接的话,你的有些功能的代码 实现起来,可能有些问题 ,
    比如 
     ---------
       当正在使用 SqlDataReader 时,关联的 SqlConnection 在忙于服务 SqlDataReader,而且除了关闭以外不能对 SqlConnection 执行其他任何操作。除非调用 SqlDataReader 的 Close 方法,否则会一直处于此状态。例如,在调用 Close 之前,无法检索输出参数 。
      

  4.   

    谢谢各位。我采用的DataTable存放取得的数据,没有采用SqlDataReader,因为我需要过滤的数据都是在存储过程中过滤的,查询返回的数据都是要用的。所以我个人觉得没必要用SqlDataReader,大家觉得呢?