2010-06-30 15 views
2

나의 최근의 질문에 더하여, 나는 이제 우리의 웹 애플리케이션이 공개하고 있던 대부분의 연결을 닫았다. 그러나 아래 기능에 의해 생성 된 연결은 열려 있습니다. 누구가 닫히지 않는지 확인할 수 있습니까? 을 나는 열려있는 연결을 보려면 로그인 SQL Server Management Studio에서 작업을 사용하고 있습니다 : HenkHolterman의 코멘트 @ 다음이 클래스 멤버가 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; 
} 

* EDIT * . 이자는 잠자는 것으로 기록됩니다. 그래서 당신이 말하는 것은 의미가 있습니다. 이것이 공개 된 연결 이라기보다는 풀링 된 연결이라는 것을 알 수있는 방법이 있습니까?

+1

에 걸려 있다고 가정까요? 'using'과'Fill()'모두 그것을 닫아야합니다. 풀의 연결을보고있을 것입니다.이 코드와 관련이 없습니다. –

+1

다음 테이블을 채울 때 _extra_ 연결을 추가하지 않으면 알 수 있습니다. –

답변

2

아마도 연결 풀로 돌아 갔기 때문일 수 있습니다.

전화하는

SqlConnection.ClearAllPools(); 

풀을 취소, 그것은 사라집니다. 이것은 때로는 유용 할 수 있지만 대개는 필요하지 않습니다.

관련 문제