Estado de conexión SqlConnection

19/04/2008 - 01:10 por Julio Briceño | Informe spam
Saludos Cordiales,

Tengo un objeto SqlConnection de ADO NET, cuando se cae la conexión VPN el
hosto remoto genera un error por que obviamente no hay conexión. Ahora he
probado con el evento StateChange y al parecer cuando cae la red este no se
dispara y si trato de preguntar por la propiedad State del objeto
SqlConnection esta tampoco hay cambiado. Sólo cuando cuando uso la conexión
es que se genera un error y cambia el valor del estado de la conexión...

La pregunta es cómo me aseguro que al momento de ejecutar un comando hay
conexión? Debo ejecutar un comando cerrar y volver a abrir asì? Es de
naturaleza desconectada? O debo ejecutar todo y averiguar si no hay conexión
interceptando y gestionando errores?

Hasta luego y gracias de antemano,
 

Leer las respuestas

#1 Alberto Poblacion
21/04/2008 - 14:03 | Informe spam
"Julio Briceño" wrote in message
news:
Tengo un objeto SqlConnection de ADO NET, cuando se cae la conexión VPN el
hosto remoto genera un error por que obviamente no hay conexión. Ahora he
probado con el evento StateChange y al parecer cuando cae la red este no
se
dispara y si trato de preguntar por la propiedad State del objeto
SqlConnection esta tampoco hay cambiado. Sólo cuando cuando uso la
conexión
es que se genera un error y cambia el valor del estado de la conexión...

La pregunta es cómo me aseguro que al momento de ejecutar un comando hay
conexión? Debo ejecutar un comando cerrar y volver a abrir asì? Es de
naturaleza desconectada? O debo ejecutar todo y averiguar si no hay
conexión
interceptando y gestionando errores?



Efectivamente, tendrás que interceptar y gestionar los errores. El
problema es que si se cae la conexión VPN, desde un punto de vista del
software cliente, es como si se hubiera desenchufado el cable de la red. El
StateChange no se dispara, porque corresponde a cambios de estado lógicos de
la conexión (por ejemplo, si tu programa la abre o la cierra), pero no tiene
nada que ver con el estado físico de la red. Mientras no se intenta
transmitir un paquete de datos por la red, no se nota que la red está
inioperativa, y en caso de que lo esté, es el proceso que está intentando
transmitir ese paquete de datos el que dispara un error (que habrá que
interceptar).

Preguntas similares