您当前的位置: 首页 > 

Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This ma

发布时间:2008-12-15 21:38:00 ,浏览量:0

连接池暴蹦.... 在运行程序的时候:

Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached. 第一感觉就是连接池爆了         检查发现 在函数     public SqlDataReader ddlbind()     {         string sqlstr = "select distinct case  flag when   'N' then '离职' when 'Y' then '在职' END  as Workflag from Flag";          SqlConnection sqlcon = new SqlConnection(PublicVar.strCon_SHATDB);          SqlCommand sqlcom = new SqlCommand(sqlstr, sqlcon);

         sqlcon.Open();         return sqlcom.ExecuteReader();     }

    public SqlDataReader ddlbinddepat()     {         string sqlstr = "select description from Dept where DeptCode in('PRD_2','PRD_3')";         SqlConnection sqlcon = new SqlConnection(PublicVar.strCon_SHATDB);         SqlCommand sqlcom = new SqlCommand(sqlstr, sqlcon);         sqlcon.Open();         return sqlcom.ExecuteReader();     }

没有关闭数据库的连接? 就赶紧写了一个关闭的sqlcon.Close(); 运行没有效果,很简单都已经返回SqlDataReader 了(当然不行) 于是想到用一个SqlDataReader 的对象来接收         SqlDataReader dr = sqlcom.ExecuteReader();         sqlcon.Close();         return dr; 是关闭了,但没有bind的数据没有了,因为关闭了. ........................ 感觉返回SqlDataReader 很耗资源,既然此路不通,我走返回datetable,故在数据访问类里面新增一个 函数   public static DataTable Query(string strSql)         {             Open();             using (SqlDataAdapter dap = new SqlDataAdapter(strSql, MyConnection))             {                 using (DataTable dt = new DataTable())                 {                     dap.Fill(dt);                     Close();                     return dt.DefaultView.Table;                 }             }         }     public DataTable ddlbind()     {         string sqlstr = "select distinct case  flag when   'N' then '离职' when 'Y' then '在职' END  as Workflag from Flag";         return DataAccess.DataAccessSHDB.Query(sqlstr);     }     public DataTable ddlbinddepat()     {         string sqlstr = "select description from Dept where DeptCode in('PRD_2','PRD_3')";         return DataAccess.DataAccessSHDB.Query(sqlstr);     }

调试OK ....未完

原因何在? using new.....

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107388博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0457s