사용을 종료하면 열려 있는 SQL 연결이 닫힙니다.
Using에서 SQLConnection을 래핑할 경우 닫아야 합니까, 아니면 Using을 사용하여 종료해야 합니까?
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
차단 호출을 사용하여 를 종료합니다.문제가 되는 개체에 대해 ()를 삭제합니다.cn
연결 및 열려 있는 리소스를 모두 닫을 수 있습니다.
Dispose(폐기) 또는 Close(닫기)를 더 정확하게 호출하면 기본 물리적 연결이 "Not use(사용하지 않음)"로 표시되지만 실제로는 닫히지 않습니다.따라서 아직 물리적으로 닫히지 않은 "Not in use" 연결을 풀링에 사용할 수 있습니다.따라서 Dispose를 호출하면 연결 풀에 대한 연결이 반환됩니다.
MSDN에 따르면 당신은 폐쇄적인 진술이 필요하지 않습니다.
"다음 예제에서는 SqlConnection을 만들고 열고 일부 속성을 표시합니다.블록을 사용하면 연결이 자동으로 닫힙니다." -- http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.close.aspx
SQL의 Dispose 메서드는 연결을 닫지만(결국 darin에 따라), 이 메서드에서 Close(닫기) 호출을 그대로 두어야 합니다.그 이유는 종료를 호출하기 위해 기본적인 Dispose 구현에 의존하게 되기 때문입니다.또한 닫기 없이 열기를 표시하는 것은 관리되지 않는 언어로 프로그래밍된 사용자에게 삭제 없이 새 열기를 표시하는 것과 같습니다.나한테는 코드 냄새야.
사용하는 것은 단지 시도하기 위한 속기일 뿐입니다.이것은 당신이 게시한 것과 동등한 코드입니다.
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
삭제는 모든 리소스 정리를 처리하도록 되어 있으며, 연결의 경우 리소스 정리를 닫습니다.
"블록을 사용하는 것은 시도처럼 동작합니다...Try 블록이 리소스를 사용하고 Finally 블록이 리소스를 처리하는 구성입니다.따라서 Using 블록은 사용자가 블록을 나가는 방법에 관계없이 리소스의 폐기를 보장합니다.이는 StackOverflow를 제외하고 처리되지 않은 예외의 경우에도 해당됩니다.예외."
https://msdn.microsoft.com/en-us/library/htd05whh.aspx
언급URL : https://stackoverflow.com/questions/376068/does-end-using-close-an-open-sql-connection
'programing' 카테고리의 다른 글
이중 중첩 배열 MongoDB에서 찾기 (0) | 2023.06.03 |
---|---|
UITableView Section 제목을 프로그래밍 방식으로 설정하는 방법(iPhone/iPad)은 무엇입니까? (0) | 2023.06.03 |
색의 16진수 투명도 (0) | 2023.06.03 |
MongoDB에서 자동 증분을 구현해야 합니까? (0) | 2023.06.03 |
npm 설치에서 충족되지 않는 종속성이 표시되는 이유는 무엇입니까? (0) | 2023.05.29 |