2009-03-09 8 views
8

Aparentemente (MSDN) a veces OleDbConnection.ResetState() no hace nada, por lo que incluso si la conexión falla, OleDbConnection.State seguirá configurado en Abierto. Estoy buscando la mejor solución para esto, de modo que cuando verifico el estado de la conexión, pueda evitar levantar excepciones (siempre que la conexión no haya fallado entre la última verificación y el intento de uso).La mejor manera de comprobar el estado de OleDbConnection

¿No hay nada mejor que enviar una declaración sql "inútil" cada vez solo para ver si se lanza una excepción? ¿Cómo se asegura de que su conexión esté abierta antes de que realmente la use?

+0

Esa es una muy buena pregunta. –

+0

@Robert - ¡Realmente lo es! –

Respuesta

5

En su caso yo haría lo siguiente:

  1. No se moleste estar seguro de si la conexión es "realmente" abierto antes de usarlo: será mayor parte del tiempo de todos modos, y usted ahorra muchos viajes inútiles al servidor
  2. PERO comprueba si hay alguna excepción cada vez que utilizas la conexión (crea métodos de ayuda para evitar copiar/pegar aquí)
  3. Si tienes una excepción, envía tu declaración "inútil" para verificar el estado "real" de la conexión de la base de datos. Lo haría porque el tipo de excepciones que puede obtener cuando se pierde la conexión al servidor a veces puede ser bastante sorprendente (dependiendo de lo que esté sucediendo en el momento en que se rompe la conexión)

Espero que esto ayude.

Cuestiones relacionadas