2010-06-10 5 views
1

나는 DB가 준비되었는지 테스트하는이 간단한 코드를 가지고 :시간 초과는 SQL 연결에서 작동하지

Function testlocalcon() As Boolean 
    Dim constr As String = _clconstr 

    Try 
     Using t As New SqlConnection() 
      constr = constr & " ; Connect Timeout=1" 

      If Not t.State = Data.ConnectionState.Open Then 
       t.ConnectionString = constr 

       t.Open() 
       If t.State = Data.ConnectionState.Open Then 
        Return True 
       Else 
        Return False 
       End If 
      Else 
       Return True 
      End If 
     End Using 
    Catch ex As Exception 
     Return False 
    End Try 
End Function 

내가 상관없이 시간 만 연결을 확인하기 위해 쿼리를 실행하려면,하지만하지 않습니다 out 매개 변수는 무시됩니다. 나는 여기 (Stackoverflow)와 인터넷을 검색하고 이것을 고치는 방법에 아무것도 발견하지 못했다.

다른 사람이이 문제가 있습니까? 또는 응용 프로그램에 DB가 준비되었음을 알리는 방법에 대한 다른 아이디어가 있습니까?

+0

연결 시간 초과 또는 명령 시간 초과를 설정하려고합니까? 그것들은 별개의 두 가지입니다. – Barry

답변

0

나는 differenc 코드에 대해 사과하지만 이것은 C#이며 나는 과거에 그것을 사용했다. 그 매우 간단하고 읽을 수 있어야합니다.

private SQLServerConnection 
private SqlConnection _SQLServerConnection; 
public SqlConnection SQLServerConnection 
    { 
     get 
     { 
      return _SQLServerConnection; 
     } 
     set 
     { 
      _SQLServerConnection = value; 
     } 
    } 

private void SetSQLServerConnectionString (string sqlServerName, string databaseName, string saPassword, int connectTimeout) 
{ 
    SQLServerConnection = new SqlConnection("Password=" + saPassword + ";Persist Security Info=True;User ID=sa;Initial Catalog=" + databaseName + ";Data Source=" + sqlServerName + ";connection timeout=" + connectTimeout.ToString(CultureInfo.InvariantCulture)); 
} 

internal bool TestSQLServerConnection(string sqlServerName, string databaseName, string saPassword, int connectTimeout) 
{ 
    try 
    { 
     SetSQLServerConnectionString(sqlServerName, databaseName, saPassword, connectTimeout); 
     SQLServerConnection.Open(); 
     return true; 
    } 
    catch (SqlException e) 
    { 

     return false; 
    } 
    finally 
    { 
     SQLServerConnection.Close(); 
    } 
} 
+1

안녕하세요 John 고마워요.하지만 코드가 제 생각과 똑같습니다. 작동하지 않습니다. 단지 시간 제한 값을 무시합니다 ... 코드를 복사하여 사용하지만 여전히 timeout 매개 변수는 무시됩니다. 다른 건가요? – carlos

+0

다른 것을 구걸합니다.이 코드를 사용하여 설치 프로그램이 서버가 있는지 확인하고 꽤 잘 작동하는지 확인했습니다. –

+0

그냥 물어 보는 중 ... 서버가 사용 가능한지 확인하는 경우 시간 초과가 걱정되는 이유는 무엇입니까? –

관련 문제