急求……数据库连接池问题,访问人多了,连接池满。。我已经显示的关闭了所有的con。但是总是连接池满。

解决方案 »

  1.   

    检查打开CONN的每个页面 ···找吧 找哪没关闭··
      

  2.   

    可是在数据库中查到的 正在进行的进程所执行的sql语句 在我断点调试的时候连接后被关闭跟一个页面中多次向数据库查询有关系吗?
      

  3.   


    try
                    {
                       
                    }
                    catch (System.Data.SqlClient.SqlException ex)
                    {
                       
                    }
                    finally
                    {
                       //一定要在这里关 如果你的SQL出了异常。。
                        conn.Close();                }
      

  4.   

    finally
                    {
                       //一定要在这里关 如果你的SQL出了异常。。
                        conn.Close();                }
      

  5.   

    是不是你的任务处理时间太长, 同时又有很多人来访问这些长任务想办法减少批处理时间尽量使用dataset, 少用datareader(要用的话要迅速用完,马上关闭)
      

  6.   

    任务长的话,基本上可以说是每个页面有大概向数据库5、6次的查询,而且是单线程的,一个查完一个查这样算多吗?我也考虑到了datareader,但是我的程序使用的全部是dataset然后从datable转化为List<新闻类>,每次ds返回前都在finally块中做了con.Close().找不到问题所在
      

  7.   

    肯定有没有关闭的地方
    用dataset不要用open方法
    查找所有Open()方法仔细找找有没有finally
      

  8.   

    查询数据最好用using
    应该是有资源没释放
      

  9.   

    "我已经显示的关闭了所有的con"?
    ==============================
    好好检查一下吧,以前我也遇到过,结果是少关闭了一个。
    要有耐心检查。
      

  10.   


            public static DataSet Query(string SQLString)
            {
                using (SqlConnection connection = new SqlConnection(connectionString))
                {
                    DataSet ds = new DataSet();
                    //connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                    try
                    {
                        command.Fill(ds, "ds");
                    }
                    catch
                    {
                        //do something
                    }
                    finally
                    {
                        if (connection.State != ConnectionState.Closed)
                        {
                            connection.Close();
                        }
                    }
                    return ds;
                }
            }
      

  11.   

    try
                    {
                        command.Fill(ds, "ds");
     command.Dispose();
                    }加上这句试试
      

  12.   

    不是一段代码的问题  是整个站的问题  尤其是reader的  你整个项目检索下确定都关了吗?
      

  13.   

    假如同时有10个人访问网站,不代表同时有10个数据库连接,因为数据库连接是使用完就立即关闭的,而且同一时刻并不是所有的用户都需要接数据库   
        
      要限制的话也可以,在config或者数据库连接字符串设置MaxPoolSize =10,不过连接池过小而数据库访问频繁的话很容易出现超过最大连接数的异常但是 肯定的说 你这个是连接打开没关闭的原因 不是别的