2010-12-02 2 views
8

가능한 중복 :
How to check if connection string is valid?
SqlConnection 문자열이 작동하는지 테스트하는 표준 .NET 방법이 있습니까?

은 현재 내가 이런 식으로 일을 해요 :

internal bool CheckConnection() 
{ 
    using (SqlConnection testConn = new SqlConnection(this.ConnectionString)) 
    { 
     try 
     { 
      testConn.Open(); 
     } 
     catch (SqlException) 
     { 
      return false; 
     } 
    } 
    return true; 
} 

이 할 수있는 더 좋은 방법이 있나요?

+0

중복입니다. 내가 할 수 있으면 지울 것입니다. – Crisfole

답변

4

꽤 많은 방법입니다. 비록 당신은 다른 예외 유형을 다루는 것에 대해서 생각해야한다. SQL 서버 문제 외에 db 서버에 other reasons why you don't connect이있을 수 있습니다.

Connection.Open은 SqlException 외에도 InvalidOperationException 및 ArgumentException을 throw 할 수 있습니다. 또한 .Open을 호출하는 API는 다른 유형의 예외를 throw하여 코드에도 침투 할 수 있습니다. 실제로 이것은 기본 예외를 처리하고 해당 메시지를 사용자에게 표시하는 것이 바람직한 경우가 드문 경우 중 하나입니다. (엄지 손가락의 일반적인 규칙은 특정 예외를 처리하는 것입니다.)

+1

매우 사실 : 데이터베이스가 유효 할 수 있지만 네트워크가 다운되었거나, 서버가 재부팅되고 있습니다. – JLWarlow

0

Nop는을, ... 그

당신은 SqlException 조금 더 많은 정보를 반환 잡기 수하는 것은의 ASE INC 유일한 방법이 아니에요 예외에 따라 Number에 따라 실패합니다.