做个小网站,现在在做测试,怎么老出现这种情况,帮忙解决个问题, 凡人  
  超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。   
    
  搜索了一下,有的说是conn没close,有的说应该把conn.dispose(),   
  还有的说sqlDataReader用过后应该close掉,   
  我都试了,好象发生这种情况的次数减少了, 但是时间一长还是有这种情况,不知道根本原因?!请大虾指点

解决方案 »

  1.   

    使用using块吧~
    using(SqlConnection sqlConn = new SqlConnection(connectionString))
    {
      //do something
    }
      

  2.   

    我能确定的我所有的sqlcon都close了
    想请问sbqcel 用using作用?
      

  3.   

    要不就重启下IIS试试,或者从启一下服务器
      

  4.   

    我现在使用的是xp系统,也在web.config配置了最大的连接数.......重启iis也不是根本的解决办法,还不知道根本的出现的原因
      

  5.   

    自己手动把Commandtimeout设置大一点,好像默认是30秒
      

  6.   

    多个conntion连接未关闭,尽量用完了就关
      

  7.   

    source=sg;initial catalog=tjgas;persist security info=False;user id=sa;password=;min pool size=10;max pool size=50;connect timeout = 20
      

  8.   

    肯定是数据库连接有没有关闭的。
    用DataReader的尤其注意
    public DataReader GetModel()
    {    #不像DataTable,DataReader前面也不能关闭数据库连接;
        return DataReader;
    }public void Set()
    {
       DataReader dr = GetModel();
       dr.Close();//如果你的ExecuteDataReader的方法不是带了那个DataReader关闭就自动关闭数据库的参数话,连接还是没有关闭。但GC估计过一段时间会回收
    }
      

  9.   

    回楼主,使用using可以自动调用对象的Dispose方法