老板给我打电话,说刚才有一百多个订单,现在突然就登录不进去了,我在服务器上调试了一下,显示内存池已满,我想就有可能是数据库每次用完之后没有关闭导致的问题,
public SQLHelper()
{
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
conn = new SqlConnection(connStr);
}
private SqlConnection GetConn()
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
return conn;
}
public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct)
{
int res;
using (cmd = new SqlCommand(cmdText, GetConn()))
{
cmd.CommandType = ct;
cmd.Parameters.AddRange(paras);
res = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
}
conn.Close();
return res;
}
我发现每次写都会开一个数据库连接,但是用完之后知识using了sqlcommand,并没有关闭connection,所以我添加了conn.close()使得每次使用完一个操作之后,就关闭数据库连接,后来又看到每次都会使用大量parameter后没有清空,所以又给清空了一下,。但是没有测试,希望没有问题