代码:
private static string _sqlConStr = "server=(local);database=ssjy;uid=sa;pwd=sa";
public static DataTable RunSQLGatDataTable(string sqlString)
{
DataTable dt = new DataTable();
SqlConnection sqlConn = new SqlConnection(_sqlConStr);
SqlCommand sqlComm = new SqlCommand(sqlString, sqlConn);
SqlDataAdapter ada = new SqlDataAdapter(sqlComm);
try
{
ada.Fill(dt);
}
catch (Exception exp)
{
}
return dt;
}
多次运行该代码,出现这样的问题:
{"超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。"}
Fill()方法好像是自动关闭Sql连接的吧?
这是什么原因呢?
private static string _sqlConStr = "server=(local);database=ssjy;uid=sa;pwd=sa";
public static DataTable RunSQLGatDataTable(string sqlString)
{
DataTable dt = new DataTable();
SqlConnection sqlConn = new SqlConnection(_sqlConStr);
SqlCommand sqlComm = new SqlCommand(sqlString, sqlConn);
SqlDataAdapter ada = new SqlDataAdapter(sqlComm);
try
{
ada.Fill(dt);
}
catch (Exception exp)
{
}
return dt;
}
多次运行该代码,出现这样的问题:
{"超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。"}
Fill()方法好像是自动关闭Sql连接的吧?
这是什么原因呢?
解决方案 »
- C#开机启动请求数据库数据,在线等,可追分
- 计算器
- VS使用问题(说不定你就被愚弄过)
- 关于ListBox中SelectedIndexChanged的问题(新手,各位大牛不要BS)
- 请问如何让自定义控件在工具箱隐藏或分组?
- 一个关于SENDMESSAGE的问题
- 来。。来。。发个求职贴,有公司要人不?
- 如何将窗体中弹出的Message Box以模式的方式显示?特别急
- 高手救我!用ASP.NET如何实现可能拖拽设计(接受拖拽)的自定义Web控件!
- 你给我的注册码好使 我还想要其他注册码 code和debguer得
- 求sql语句:查询定单表,得到一个月每天销量统计,能用一个sql来做吗?
- C# SqlDataReader在SqlConnection关闭连接后怎么就为空了啊?
finally
{
sqlConn.close();
}
并且 连接池是透明的,sqlconnection.close 是还回到连接池的。程序从连接池取连接是资源消耗非常小的。
SqlConnection sqlConnOne = new SqlConnection(_sqlConStr) ;
sqlconnOne.open()
//看连接池中是否有 connectionString为 _sqlConStr空闲的连接,有取回连接。没有的,
//重新创建一个新的连接并还回(注:如果现有的连接数大于等于 连接池 max connetion size,程序将等待,等待时间超过connectionTimeout还不能创建,系统抛出异常time Out
dosomething
sqlconnOne.close()//还回到连接池
SqlConnection sqlConnTwo = new SqlConnection(_sqlConStr) ;
sqlconnTwo.open()
dosomething
sqlconnTwo.close()//还回到连接池
系统会连接池中对比 connectionString _sqlConStr,所以一般_sqlConstr一定要一致,这样才会有效的使用连接池。
"server=(local);integrated security=sspi;database=name"
"server=(local);database=name;integrated security=sspi"
以上两个虽然含义一样,但是系统认为他们是不同的ConnectionString
1、是要关闭所有连接
2、我后面的有一个返回SqlDataReader 对象的方法在调用后没有关闭SqlDataReader 。