테이크 코드 :VB.Net SqlConnections, SqlCommands 등에서 Close() 및 Dispose()와 같은 것을 명시 적으로 호출해야합니까? 이 같은
Dim dt As New DataTable("Table")
Dim sda As New SqlDataAdapter(pQuery, pCon)
sda.SelectCommand.CommandTimeout = pCommandTimeout
sda.Fill(dt)
sda.Dispose()
Return dt
과 :
Dim myconnection As SqlConnection = New SqlConnection(DBValues.m_sDBString)
myconnection.Open()
Try
Dim com As New SqlCommand(cmd, myconnection)
com.ExecuteNonQuery()
com.Dispose()
Catch ex As Exception
Throw ex
Finally
If myconnection.State = ConnectionState.Open Then
myconnection.Close()
myconnection.Dispose()
End If
End Try
는 닫기()과 폐기()처럼 명시 적으로 호출 것들 과도한지고? 분명히 GC는 이것을 내부적으로 대부분 처리하지만 모든 시간 (?)을 처리하지는 않기 때문입니다. 지금까지 나는 누군가가 이것이 과도 할 때와 그렇지 않은 때를 구별하는 방법에 대한 명확하고 모호하지 않은 설명을 명시하지 않았으며, 또는 명시 적으로 이것을하는 것과 GC가 그것을 처리하게하는 것 사이의 차이를 구분하지 않았다. 누군가 설명 할 수 있을까요? 감사!
연결을 닫는 'Using' 문을 사용하십시오. 또한 오류 발생시에도 객체가 삭제되도록 보장합니다. –