c# 数据连接,超时问题
最近帮人做了个程序,总是在程序运行一段时间的时候,弹出一个错误,说数据连接池过小,或者超时,请问各位,string connStringUnUsePool = "server=.;database=pubs;uid=sa;pwd=123456;"这样写的连接有错吗? --------------------编程问答-------------------- 写法没有错。
但根据你说的错误,那是因为你使用的数据库连接资源使用后没有及时关闭造成的连接资源不够用造成的。 --------------------编程问答-------------------- 这样啊啊的房价过快i --------------------编程问答--------------------
+1 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- --------------------编程问答-------------------- 被占用了 --------------------编程问答-------------------- 恩,是因为大量使用了Reader所致,唉 --------------------编程问答--------------------
还是从代码着手进行优化吧 --------------------编程问答-------------------- 用过之后要Close().
private static SqlConnection connection;
public static SqlConnection Connection
{
get
{
//string connectionString = ConfigurationManager.ConnectionStrings["WEBDB"].ConnectionString;
string connectionString="server=.;database=pubs;uid=sa;pwd=123456;";
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
} --------------------编程问答--------------------
+1 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 要关闭掉数据库 --------------------编程问答-------------------- 最好使用using --------------------编程问答-------------------- 每次connection.Open();
用完之后
记得connection.Close();
否则会占用很多资源····
--------------------编程问答-------------------- 记得释放!
--------------------编程问答-------------------- 有可能是使用的事务连接没有关闭 其他人使用的话就会报这个错误!!! --------------------编程问答-------------------- 哦哦,原来如此啊,学习了!
数据连接池过小,或者超时 的原因是open() 数据库操作频繁只开不关,我可以这样理解么 --------------------编程问答--------------------
可以这样理解
有可能打开数据库,操作数据库的线程太多了
但都没能结束
所以打开太多,就会超时
设置并发数大点,或者优化数据库操作的程序,可能会解决此问题 --------------------编程问答-------------------- 不是关不关的问题,貌似SqlResder 这个就算你释放了,也是会出现问题的,后来我全部换成了Dataset,就没问题了,杯具啊
补充:.NET技术 , C#