tutorial query net ejemplo c# ado.net sqlconnection

c# - query - Compruebe si la conexión SQL está abierta o cerrada



sqlconnection c# parameters (8)

Comprueba si hay una conexión MySQL abierta

ConnectionState state = connection.State; if (state == ConnectionState.Open) { return true; } else { connection.Open(); return true; }

¿Cómo se verifica si está abierto o cerrado? Estaba usando

if (SQLOperator.SQLCONNECTION.State.Equals("Open"))

sin embargo, incluso si el Estado es ''Abierto'', falla en este control.


Debería estar usando SqlConnection.State

p.ej,

if (myConnection != null && myConnection.State == ConnectionState.Closed) { // do something // ... }


Este código es un poco más defensivo, antes de abrir una conexión, verifica el estado. Si el estado de la conexión está roto, entonces debemos tratar de cerrarlo. Roto significa que la conexión se abrió previamente y no funciona correctamente. La segunda condición determina que el estado de conexión debe cerrarse antes de intentar abrirlo de nuevo para que el código pueda ser llamado repetidamente.

// Defensive database opening logic. if (_databaseConnection.State == ConnectionState.Broken) { _databaseConnection.Close(); } if (_databaseConnection.State == ConnectionState.Closed) { _databaseConnection.Open(); }


Esto es lo que estoy usando:

if (mySQLConnection.State != ConnectionState.Open) { mySQLConnection.Close(); mySQLConnection.Open(); }

La razón por la que no estoy simplemente usando:

if (mySQLConnection.State == ConnectionState.Closed) { mySQLConnection.Open(); }

Es porque ConnectionState también puede ser:

Broken, Connnecting, Executing, Fetching

Además de

Open, Closed

Además, Microsoft afirma que el cierre y la reapertura de la conexión "actualizarán el valor del estado". Vea aquí http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.state(v=vs.110).aspx


La documentación de .NET dice: Propiedad del estado: una combinación bit a bit de los valores de ConnectionState

Entonces creo que deberías verificar

!myConnection.State.HasFlag(ConnectionState.Open)

en lugar de

myConnection.State != ConnectionState.Open

porque el estado puede tener múltiples banderas.


Para verificar el estado de conexión de la base de datos puede simplemente hacer lo siguiente

if(con.State == ConnectionState.Open){}


Uso de la siguiente manera sqlconnection.state

if(conexion.state != connectionState.open()) conexion.open();


también puedes usar esto

if (SQLCON.State == ConnectionState.Closed) { SQLCON.Open(); }