복붙노트

[SQL] 합니까 끝 가까운 오픈 SQL 연결을 사용하여

SQL

합니까 끝 가까운 오픈 SQL 연결을 사용하여

내가 사용에 SQLConnection을 포장하는 경우, 나는 그것을 닫아야 또는 끝 핸들에게 그것을 사용합니까?

using cn as new system.data.sqlclient.sqlconnection()
    cn.open
    '{do a bunch of other stuff with commands and datareaders here}
    cn.close 'Do I need this?
end using 

해결법

  1. ==============================

    1.사용하여 블록을 종료하는 것은도록 SqlConnection의 연결 열려있는 모든 자원을 닫습니다 (귀하의 예제에서 CN) 해당 개체에 .Dispose ()를 호출합니다.

    사용하여 블록을 종료하는 것은도록 SqlConnection의 연결 열려있는 모든 자원을 닫습니다 (귀하의 예제에서 CN) 해당 개체에 .Dispose ()를 호출합니다.

  2. ==============================

    2.더 정확하게 "사용 안함"으로 기본 물리적 연결을 표시합니다 폐기 또는 닫기를 호출 -하지만하지 않습니다 정말 가까이 그것. 아직 물리적으로 폐쇄되지 않은 "사용 안함"연결 풀링에 따라서 사용할 수 있습니다. 따라서 - 폐기를 호출하면 연결 풀에 연결을 반환합니다.

    더 정확하게 "사용 안함"으로 기본 물리적 연결을 표시합니다 폐기 또는 닫기를 호출 -하지만하지 않습니다 정말 가까이 그것. 아직 물리적으로 폐쇄되지 않은 "사용 안함"연결 풀링에 따라서 사용할 수 있습니다. 따라서 - 폐기를 호출하면 연결 풀에 연결을 반환합니다.

  3. ==============================

    3.MSDN에 따르면 당신은 가까운 문을 필요가 없습니다.

    MSDN에 따르면 당신은 가까운 문을 필요가 없습니다.

    "다음의 예는 디스플레이 속성들을, 그것을 연다하는도록 SqlConnection를 생성한다. 연결은 자동으로 이용 블록의 끝에서 닫힌다." - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.close.aspx

  4. ==============================

    4.는 SQL의 폐기 방법은 가까운 연결을 수행하는 동안 당신은 거기 닫기에 대한 호출을 떠나야한다 (결국 대린에 따라). 그 이유는 당신이 가까운 전화를 폐기의 기본이되는 구현에 의존 할 것입니다. 또한 닫기없이 열기를 보는 것은 관리되지 않는 언어로 프로그래밍 한 것을 우리의 사람들에 대한 삭제하지 않고 새를 보는 것과 같다. 그것은 나를 위해 코드 냄새입니다.

    는 SQL의 폐기 방법은 가까운 연결을 수행하는 동안 당신은 거기 닫기에 대한 호출을 떠나야한다 (결국 대린에 따라). 그 이유는 당신이 가까운 전화를 폐기의 기본이되는 구현에 의존 할 것입니다. 또한 닫기없이 열기를 보는 것은 관리되지 않는 언어로 프로그래밍 한 것을 우리의 사람들에 대한 삭제하지 않고 새를 보는 것과 같다. 그것은 나를 위해 코드 냄새입니다.

  5. ==============================

    5."는 시도처럼 블록 동작합니다을 사용하여 A는 ... 마지막으로 건설하는 Try 블록은 자원을 사용하고 마지막으로 그들의 처분하는 차단합니다. 이로 사용하여 블록 자원, 당신은 블록을 종료하는 방법에 상관없이 처분을 보장하기 때문에. 이것은있는 StackOverflowException을 제외하고도 처리되지 않은 예외의 경우 사실이다. " https://msdn.microsoft.com/en-us/library/htd05whh.aspx

    "는 시도처럼 블록 동작합니다을 사용하여 A는 ... 마지막으로 건설하는 Try 블록은 자원을 사용하고 마지막으로 그들의 처분하는 차단합니다. 이로 사용하여 블록 자원, 당신은 블록을 종료하는 방법에 상관없이 처분을 보장하기 때문에. 이것은있는 StackOverflowException을 제외하고도 처리되지 않은 예외의 경우 사실이다. " https://msdn.microsoft.com/en-us/library/htd05whh.aspx

  6. ==============================

    6.사용하여 마지막으로 / 시도하는 단지 속기이다. 이것은 당신이 무엇을 게시에 equivilent 코드

    사용하여 마지막으로 / 시도하는 단지 속기이다. 이것은 당신이 무엇을 게시에 equivilent 코드

    Try
        SqlConnection cn as new system.data.sqlclient.sqlconnection()
        cn.open
        '{do a bunch of other stuff with commands and datareaders here}
        cn.close 'Do I need this?
    Finally
        cn.Dispose()
    End Try
    

    폐기는 그것을 닫습니다 연결의 경우, 모든 자원의 정리 돌볼 예정이다.

  7. from https://stackoverflow.com/questions/376068/does-end-using-close-an-open-sql-connection by cc-by-sa and MIT license