2014-06-12 3 views
0

데이터베이스에서 데이터를 검색 할 때 최적vb.net에서 SQL 연결을 최적으로 처리하는 방법은 무엇입니까?

  • 열기
  • 닫기
  • 폐기
  • 예외

을 처리하는 방법 ASP.NET 웹 프로그래밍

.

을 최적화하기 위해 찾고

난 항상, 연결을 오류를 잡기 위해 다음 다음 정확히 어느 경우에서 연결을 처분 사용했다.

VB.NET

Try 
    con.Open() 
    //... 
    con.Close() 
Catch ex As Exception 
    lbl.Text = ex.Message 
Finally 
    If con IsNot Nothing Then 
    con.Dispose() 
    End If 
End Try 

나는 사람들이 실제적으로이 코드를 던지고 찾을 수 많은 기사를 읽은 후, 그러나 나는 4 단계를 수용 할 수있는 다른 방법이 보이지 않는다. 을 효율적으로 사용해야한다.

대안, 그리고 나는 더 많은 CPU를 믿을 수있다 USING 진술, SQL 연결의 올바른 처분을위한 도구로 보인다. 그러나 나쁜 데이터가 데이터베이스에서 검색 될 때 어떤 일이 발생하며 최종 사용자에게 무엇이 잘못되었는지를 알려주는 데는 아무 것도 없습니다.

질문 사이

:, 시도 캐치를 사용 다른.

데이터 검색 구문을 처리하는 데 더 빠르고, 더 깨끗하며, 가장 효율적인 방법은 무엇입니까?

사람들의 의견을 듣고 기쁘지만 사실을 찾고 있습니다.

답변

2

다음 코드 블록을 템플릿으로 사용할 수도 있습니다. 그것은 Using ... End Using and Try ... 블록을 결합합니다.

Using conn As New SqlConnection(My.Settings.SQLConn) 
    Try 
     Conn.open 
    Catch ex As SqlException 

    End Try  
End Using 

conn.Dispose() 블록을 사용하면 자동으로 수행하므로 전화 할 필요가 없습니다.

+0

전에 많은 시간을 들었지만 이것은 나에게 불필요한 것처럼 보입니다. 어쨌든 사용하는 try/catch로 컴파일됩니다. 중첩 try/catch 사용하면 나쁜 코드처럼 보입니다. 분명히 finally 블록에 con.close를 추가하는 것은 using 블록에 try/catch를 래핑하는 것보다 효율적입니까? – Obsidian

+0

좋은 지적. 또한 try/catch 좋은 예외를 처리하고 필요한 로깅/정리 단계를 수행하기 때문에 좋은 생각합니다. 새로운 정보가 있으면 더 많은 연구와 업데이트를 할 것입니다. –

0

사용 엔티티 프레임 워크, 그것은 효율적으로 당신을 위해 작동 패턴의 단위를 구현하고, 자동으로 지정하고 시스템 자원을 확보하므로

0

는 항상 "사용"프로세스를 사용하여 트랜잭션 범위 내에서 작업을 수행합니다. 이 경우 try-catch를 수행하여 사용자에게 오류를 표시 할 수 있습니다.

+0

나는 많은 시간을 들었지만 이것은 나에게 불필요한 것처럼 보입니다. 어쨌든 사용하는 try/catch로 컴파일됩니다. 중첩 try/catch 사용하면 나쁜 코드처럼 보입니다. 반드시 사기범을 추가하십시오.finally 블록을 닫으면 사용 블록에서 try/catch를 래핑하는 것보다 효율적입니까? – Obsidian

+0

시도 ... 마침내 사용 가능합니다. http://msdn.microsoft.com/en-us/library/htd05whh.aspx –

관련 문제