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

图片的提示就是“超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小” 知道是某个数据没关闭,可是我在很多地方加了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 这样治标不治本而且会损坏系统性能  请问有什么好的方法吗
明月笑刀无情
浏览 2698回答 10
10回答

繁花不似锦

你上面的代码是不是调用的sqlhelper?你的系统是一开始就报错还是,运行一段时间后报错?

慕盖茨4494581

你这代码写的太差了,根本就没法改,因为看不出你到底为什么要这样做。

精慕HU

呃....

尚方宝剑之说

@Coral_修:那你有没有正常的代码啊

眼眸繁星

LZ最好能在finally中close()或者直接使用using关键字。还有用了using 就不需要close了。代码太乱了。建议楼主看一看,《代码整洁之道》之类的书籍。

开满天机

代码稍微修改了一下 

阿波罗的战车

图挂了, 你的SqlDataReader 没有dispose,不满才怪。 你的数据库的操作,没有一个try catch finally。肯定不行的

慕雪6442864

图片不能显示,麻烦上传一下图片

牛魔王的故事

图片的提示就是:超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小
打开App,查看更多内容
随时随地看视频慕课网APP