除了我最近的问题之外,我现在已经关闭了我们的Web应用程序打开的大部分连接。但是,下面的功能创建的连接仍然保持打开状态。任何人都可以确定它没有关闭的原因吗?
public DataTable GetSubDepartment(int deptId)
{
DataTable dt = new DataTable();
using (SqlConnection conn = new SqlConnection(Defaults.ConnStr))
{
SqlCommand cmd = new SqlCommand("proc_getDepartmentChild", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@dptParent", deptId));
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(dt);
}
return dt;
}
*编辑* 关注@ HenkHolterman的评论: 我正在使用SQL Server Management Studio活动日志来查看打开的连接。这个被列为睡觉。所以你说的是有道理的。有什么方法可以说这是一个汇集的连接而不是一个开放的连接?
答案 0 :(得分:2)
很可能是因为它回到了连接池。
致电
SqlConnection.ClearAllPools();
清除池,然后它应该消失。这有时可能有用,但通常不需要。
答案 1 :(得分:1)
我认为它挂在connectionpool
中