/// <summary>
///许定义的类:连接与断开数据库
/// </summary>
public class ConnectionDatabase
{
//String strConnection = ConfigurationSettings.AppSettings["TKPU"]; // web.config 定义的数据库连接字符串
String strConnection = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["dtzrc_888CSPC"].ConnectionString; public SqlConnection objConnection; public void Connect() //打开数据库
{
if (objConnection == null)
objConnection = new SqlConnection(strConnection); if (objConnection.State == ConnectionState.Closed)
objConnection.Open();
} public void Disconnect() 关闭数据库
{ objConnection.Close();
}}ConnectionDatabase.Connect();
.............
//操作数据库代码
..............
ConnectionDatabase.Disconnect();我用这代码用表单自动连续提交数据的时候,开始速度很快,到后来就越来越慢,用浏览器打开这个网站首页都很慢,时候有时还会出现
超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。源错误: 行 27:
行 28: if (objConnection.State == ConnectionState.Closed)
行 29: objConnection.Open();
行 30: }
行 31:
{ objConnection.Close();
objConnection.Dispose();
}
看看数据库操作类sqlhelper.
连接要及时释放。看看数据库连接数
using(SqlConnection con = new SqlConnection(_connectionString))
{
string sql= "";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.SelectCommand.CommandTimeout = 1000;
cmd.Parameters.AddWithValue("@Name", ""); con.Close();
}