2011-09-02 2 views
0

나는 응용 프로그램의 모든 양식에서 데이터베이스에 액세스하기 위해 전역 데이터베이스 sqlconnection 객체를 사용하는 응용 프로그램을 상속 받았습니다. 응용 프로그램이 시작되면 연결이 설정됩니다..net의 글로벌 데이터베이스 연결

연결을 항상 열어 두는 것이 좋습니다. 데이터베이스를 열어야 할 때마다 데이터베이스 연결을 열고 닫으려고 변경하는 것이 좋습니다.

내가 여기에 있는지 알고 싶습니다.

이 내가 대신 사용하는 것이 무엇인가, 개선을위한 어떤 제안을 환영합니다 : 내가 SqlCommand 개체에 매개 변수를 추가 할 수 있기 때문에

Public Sub UpdateDatabase(ByVal command As SqlCommand, ByRef NumError As Double, ByRef DescError As String) 
    Using connection As New SqlConnection(connectionString) 
     Try 
      command.ExecuteNonQuery() 
      command.Dispose() 
      NumError = 0 
      DescError = "" 
     Catch ex As Exception 
      NumError = Err.Number 
      DescError = Err.Description 
     End Try 
    End Using 
End Sub 

내가 대신 쿼리 문자열의 방법에 SqlCommand 개체를 보낼 수 있습니다.

답변

1

using으로 연결을 처리하는 방식은 문제가 없으며 연결은 항상 닫히고 처리됩니다.

호출자로부터 데이터베이스 엔진 격리 명령을 전달하는 방식이 좋지 않습니다. 매개 변수의 경우 이름과 값의 목록을 전달하고이 코드를 호출하는 100.000 곳이 아닌 위의 클래스에 매개 변수를 추가하면됩니다.

새로 열린 연결을 명령에 연결하는 것을 잊지 마십시오. 그렇지 않으면 작동하지 않습니다.

어떤 사람들은 또한 명령이 배치되도록 또 다른

+0

가'파라미터를 들어 당신은 단순히 이름과 값의 목록을 전달할 수있는 매개 변수를 추가 ... 연결에 사용하는 내부 명령 주위에 사용 넣어 당신의 당신이이 코드를 호출 한 100.000 곳이 아닙니다.'어떻게 해야할지 모르겠다.이 일이 끝난 곳으로 나를 가리켜 줄 수 있을까? – rfc1484

+1

@ rfc1484 : 여기 링크와 샘플이 있습니다. http://www.sharpdeveloper.net/content/archive/2007/05/25/creating-sqlparameters-best-practices.aspx –