2010-12-02 17 views
8

Possible en double:
How to check if connection string is valid?Existe-t-il un moyen standard .NET de tester si une chaîne SqlConnection fonctionne?

Actuellement, je fais comme ça:

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

est-il une meilleure façon de le faire?

+0

Il s'agit d'un doublon. Je supprimerais si je pouvais. – Crisfole

Répondre

4

C'est à peu près la façon de le faire. Bien que vous devriez penser à gérer d'autres types d'exceptions. Il peut y avoir other reasons why you don't connect à un serveur DB en plus d'un problème SQL. Connection.Open peut lancer InvalidOperationException et ArgumentException en plus de SqlException.

En outre, les API que les appels .Open peuvent lancer d'autres types d'exceptions qui peuvent percoler dans votre code. En fait, c'est l'une des rares occasions où il serait préférable de gérer l'exception de base et d'afficher son message à l'utilisateur. (La règle générale est de traiter que les exceptions.)

+1

Très vrai: La base de données peut être valide mais le réseau est arrêté, le serveur est en cours de redémarrage, etc. – JLWarlow

0

Nop, il n'y a pas ... c'est la seule façon

Ce que vous pouvez attrape le SqlException et revenir un peu plus d'info inc ase échoue en fonction de l'Number dans l'exception