为了账号安全,请及时绑定邮箱和手机立即绑定

超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小

超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小

明月笑刀无情 2018-12-06 12:51:11
图片的提示就是“超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小” 知道是某个数据没关闭,可是我在很多地方加了close还是不行 有些地方加了会提示检测到无法访问代码,鼠标移到ExecuteReader会提示System.InvalidOperationException System.Data.SqlClient.SqlException异常的信息。   代码: using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient; public class dataOperate{    public  SqlConnection con;    public dataOperate()    {    }    public  bool execSQL(string sql)    {        SqlConnection con = createCon();        con.Open();        SqlCommand com = new SqlCommand(sql, con);        try        {            com.ExecuteNonQuery();            con.Close();        }        catch (Exception e)        {            con.Close();            return false;        }         return true;    }    public  int seleSQL(string sql)    {        SqlConnection con = createCon();        con.Open();        SqlCommand com = new SqlCommand(sql, con);        try        {          return Convert.ToInt32(com.ExecuteScalar());        }        catch (Exception e)        {            CloseDB();            return 0;        }    }    public  DataSet getDataset(string sql, string table)    {        using (SqlConnection con = createCon())        {            con.Open();            DataSet ds;            SqlDataAdapter sda = new SqlDataAdapter(sql, con);            ds = new DataSet();            sda.Fill(ds, table);            return ds;        }      }      public SqlDataReader ExceRead(string sql)    {        SqlConnection con = createCon();        con.Open();        SqlCommand com = new SqlCommand(sql, con);        SqlDataReader read = com.ExecuteReader();        return read;    }       public  SqlConnection createCon()    {        con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConStr"].ToString());              return con;    }    public void CloseDB()    {        if (con.State == ConnectionState.Open)        {            con.Close();        }    }}     我在web.configl里加了个         如果在这里加个Max Pool Size=512 这样治标不治本而且会损坏系统性能  请问有什么好的方法吗
查看完整描述

10 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

你上面的代码是不是调用的sqlhelper?你的系统是一开始就报错还是,运行一段时间后报错?
查看完整回答
反对 回复 2018-12-09
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

你这代码写的太差了,根本就没法改,因为看不出你到底为什么要这样做。
查看完整回答
反对 回复 2018-12-09
?
精慕HU

TA贡献1845条经验 获得超8个赞

呃....
查看完整回答
反对 回复 2018-12-09
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

@Coral_修:那你有没有正常的代码啊
查看完整回答
反对 回复 2018-12-09
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

LZ最好能在finally中close()或者直接使用using关键字。还有用了using 就不需要close了。代码太乱了。建议楼主看一看,《代码整洁之道》之类的书籍。
查看完整回答
反对 回复 2018-12-09
?
开满天机

TA贡献1786条经验 获得超13个赞

代码稍微修改了一下 
查看完整回答
反对 回复 2018-12-09
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

图挂了, 你的SqlDataReader 没有dispose,不满才怪。 你的数据库的操作,没有一个try catch finally。肯定不行的
查看完整回答
反对 回复 2018-12-09
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

图片不能显示,麻烦上传一下图片
查看完整回答
反对 回复 2018-12-09
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

图片的提示就是:超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小
查看完整回答
反对 回复 2018-12-09
  • 10 回答
  • 0 关注
  • 2697 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信