2010-12-02 9 views
8

Duplicar posibles:
How to check if connection string is valid?¿Existe una forma .NET estándar para probar si funciona una cadena SqlConnection?

Actualmente lo estoy haciendo de esta manera:

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

¿Hay una mejor manera de hacer esto?

+0

Es un duplicado. Eliminaría si pudiera. – Crisfole

Respuesta

4

Esa es prácticamente la forma de hacerlo. Aunque también debes pensar en manejar algunos otros tipos de excepción. Puede haber other reasons why you don't connect en un servidor db además de un problema sql.

Connection.Open puede lanzar InvalidOperationException y ArgumentException además de SqlException. Además, las API que abren las llamadas pueden arrojar otros tipos de excepciones que también pueden filtrarse a su código. De hecho, esta es una de las raras instancias en las que podría ser preferible manejar la excepción base y mostrar su mensaje al usuario. (La regla general es manejar sólo las excepciones específicas.)

+1

Muy cierto: la base de datos podría ser válida, pero la red está inactiva, el servidor está siendo reiniciado, etc. – JLWarlow

0

Nop, no hay ... esa es la única manera

Lo que puede es la captura de la SqlException y devolver un poco más de información inc ASE fallar dependiendo de Number en la excepción

Cuestiones relacionadas