Pregunta

Aparentemente ( MSDN ) a veces OleDbConnection.ResetState () no hace nada, por lo que incluso si la conexión falla OleDbConnection.State todavía se establecerá en Abrir. Estoy buscando la mejor solución para esto, de modo que cuando verifique el estado de la conexión pueda evitar generar excepciones (siempre que la conexión no haya fallado entre la última verificación y el intento de uso).

¿No hay nada mejor que enviar un " inútil " instrucción SQL cada vez solo para ver si se produce una excepción? ¿Cómo se asegura de que su conexión esté abierta antes de usarla realmente?

¿Fue útil?

Solución

En su caso, haría lo siguiente:

  1. No te molestes en estar seguro si la conexión es "realmente" abra ANTES de usarlo: de todos modos será la mayor parte del tiempo, y ahorrará muchas vueltas inútiles al servidor
  2. PERO verifique cualquier excepción cada vez que use la conexión (cree métodos auxiliares para evitar copiar / pegar aquí)
  3. Si tiene una excepción, envíe su " inútil " instrucción para verificar la conexión de la base de datos "real" estado. Lo haría porque el tipo de excepciones que puede obtener cuando se pierde la conexión con el servidor a veces puede ser bastante sorprendente (dependiendo de lo que esté sucediendo en el momento en que se interrumpe la conexión)

Espero que esto ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top