为什么这个类成员会打开SQL连接?

时间:2010-06-30 09:18:03

标签: c# .net sql-server database-connection connection-pooling

除了我最近的问题之外,我现在已经关闭了我们的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活动日志来查看打开的连接。这个被列为睡觉。所以你说的是有道理的。有什么方法可以说这是一个汇集的连接而不是一个开放的连接?

2 个答案:

答案 0 :(得分:2)

很可能是因为它回到了连接池。

致电

SqlConnection.ClearAllPools();

清除池,然后它应该消失。这有时可能有用,但通常不需要。

答案 1 :(得分:1)

我认为它挂在connectionpool