繼我最近的問題之後,我已經關閉了我們的Web應用程序保持開放的大部分連接。但是,由以下功能創建的連接保持打開狀態。任何人都可以確定它爲什麼不關閉?爲什麼這個類成員打開SQL連接?
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中的活動日誌來查看打開的連接。這一個被列爲睡覺。所以你說什麼是有道理的。有什麼辦法可以告訴我這是一個連接而不是一個開放的連接?
確定嗎? 'using'和'Fill()'都應該關閉它。您可能正在查看Pool中的連接,與此代碼無關。 – 2010-06-30 09:22:30
您可以分辨何時填充下一個表不會添加_extra_連接。 – 2010-06-30 09:32:46