在服务器上运行时间长了,就会出现,如下情况:
timeout expired.the timeout period to obtaining a connection frm the pool.this have occurred all pooled connectionw were in use and max pool size wan reached.程序如下:
string strSQL="select sum(usercount) as count1 from usercount";
                            SqlCommand myComm=new SqlCommand(strSQL ,objConnection);
myComm.CommandTimeout=800000;
objConnection.Open();
数据连接那一块为 <add key="ConnectString" value="Data Source=fuwu;User Id=aa;Password=;DataBase=PM;Connect Timeout=90"  />  
 请大家帮忙解决,谢谢!我用的是VS2003+SQL2000

解决方案 »

  1.   

    Connect Timeout=90数据库连接过期事件为90, CommandTimeout=800000为800000
    等数据库过期时间到了以后,myComm 就会出错
      

  2.   

    之前我沒加Connect Timeout=90, CommandTimeout=800000为800000 
    有点郁闷
      

  3.   

    你没关闭连接 可能是连接池的问题 你加上objConnection.close()看看
      

  4.   

    这个错误是你代码有问题造成的。
    默认的情况下 SqlConnection 会启用连接池,连接数为 100 个当 SqlConnection.Open() 时会从连接池中取出连接实例,当 SqlConnection.Close() 时会把连接实例返回到连接池中。上述错误是因为你显式的打开连接,却没有显示的关闭连接造成的(不关闭连接不会返回到连接池)。
    解决办法:
    1)最简单的是在构造 ConnectionString 字符串中关闭连接池(详见 MSDN)。
    2)检查所有使用到 SqlConnection 的代码处,是否显示的关闭了连接。
      

  5.   

    是不是数据库连接池溢出阿?
    ADO.NET的连接池一定要释放的,虽然Framwork有垃圾回收器,我们也要手动写代码释放来提高服务器的运行效率。
    要么你在Finaly里边dispose(),要么写在using(){}里边!
      

  6.   

    PS:是不是数据库连接池溢出阿? 不是。所谓的连接池、线程池之类的。其实就是完成任务后的连接(线程)不销毁而是挂起,等待下一次任务。一般连接池都有一个最大上限,超过池限制会返回 null 或 throw 异常。