把Max Pool Size配置大点吧,这个默认是100,将连接超时时间设置长些,默认15称,如果超出,则会出现等待,可能出现连接超时,看你的服务器性能了并不是using和conn.Close没用,这两个操作只是把你的连接返回给连接池而已,服务器并不会注销这个连接
public static int ExecuteCommand(string sql) { using (SqlConnection connection = new SqlConnection(GetConnection.GetSqlConnection())) { connection.Open(); using (SqlCommand cmd = new SqlCommand(sql, connection)) { return Convert.ToInt32(cmd.ExecuteNonQuery()); } connection.Close(); } }我把代码贴一下 突然发现 这是不是因为在close()之前已经return了,所以关闭连接这就没走!
public static int ExecuteCommand(string sql) { using (SqlConnection connection = new SqlConnection(GetConnection.GetSqlConnection())) { connection.Open(); using (SqlCommand cmd = new SqlCommand(sql, connection)) { return Convert.ToInt32(cmd.ExecuteNonQuery()); } connection.Close(); } }我把代码贴一下 突然发现 这是不是因为在close()之前已经return了,所以关闭连接这就没走!
public static int ExecuteCommand(string sql) { int reval=0 using (SqlConnection connection = new SqlConnection(GetConnection.GetSqlConnection())) { connection.Open(); using (SqlCommand cmd = new SqlCommand(sql, connection)) { reval=Convert.ToInt32(cmd.ExecuteNonQuery()); } connection.Close(); return reval }最后return
{
using (SqlConnection connection = new SqlConnection(GetConnection.GetSqlConnection()))
{
connection.Open();
using (SqlCommand cmd = new SqlCommand(sql, connection))
{
return Convert.ToInt32(cmd.ExecuteNonQuery());
}
connection.Close();
}
}我把代码贴一下 突然发现 这是不是因为在close()之前已经return了,所以关闭连接这就没走!
DbHelper数据操作类
{
using (SqlConnection connection = new SqlConnection(GetConnection.GetSqlConnection()))
{
connection.Open();
using (SqlCommand cmd = new SqlCommand(sql, connection))
{
return Convert.ToInt32(cmd.ExecuteNonQuery());
}
connection.Close();
}
}我把代码贴一下 突然发现 这是不是因为在close()之前已经return了,所以关闭连接这就没走!
{
int reval=0
using (SqlConnection connection = new SqlConnection(GetConnection.GetSqlConnection()))
{
connection.Open();
using (SqlCommand cmd = new SqlCommand(sql, connection))
{
reval=Convert.ToInt32(cmd.ExecuteNonQuery());
}
connection.Close();
return reval
}最后return
就算不写关闭,connection 一样会自动close。
uisng的作用就是自动关闭,包括出现异常也能关闭。
查看一下连接类的Dispose()方法的IL代码,它们都检查连接对象的当前状态,如果其状态为打开,就调用Close()方法。