Como você verifica se ele está aberto ou fechado?
if (SQLOperator.SQLCONNECTION.State.Equals("Open"))
no entanto, mesmo o Estado é 'Aberto', ele falha nesta verificação.
c#
ado.net
sqlconnection
Pedro franco
fonte
fonte
SqlConnectionState
enum como um enum e não o transforme em uma string .....using System.Data;
na resposta, IMHO. Esqueci esse namespace (tinhausing System.Data.SqlClient
) e não consegui descobrir como obterConnectionState
uma palavra-chave até adicioná-lo. Espero que isso ajude alguém.if (myConnection == null || myConnection.State == ConnectionState.Closed) { //Connection is closed } else { //Connection is open in some way }
? Assim, se a conexão for nula, ela também será "fechada".Aqui está o que estou usando:
A razão pela qual não estou simplesmente usando:
É porque o ConnectionState também pode ser:
Além de
Além disso, a Microsoft afirma que Fechar e, em seguida, reabrir a conexão "atualizará o valor do Estado". Veja aqui http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.state(v=vs.110).aspx
fonte
mySQLConnection.State != ConnectionState.Open && mySQLConnection.State != ConnectionState.Connecting
para evitar reinicializações com conexões lentas, não é?A documentação do .NET diz: Propriedade de estado: uma combinação bit a bit dos valores de ConnectionState
Então eu acho que você deve verificar
ao invés de
porque o estado pode ter vários sinalizadores.
fonte
Verifique se uma conexão MySQL está aberta
fonte
return true;
? coloque no final do método, fora doif
/else
!você também pode usar isso
fonte
using System.Data;
para qualquer um que não soubesse ou não soubesse por que não estava funcionandoEste código é um pouco mais defensivo, antes de abrir uma conexão, verifique o estado. Se o estado da conexão for interrompido, devemos tentar fechá-la. Quebrado significa que a conexão foi aberta anteriormente e não está funcionando corretamente. A segunda condição determina que o estado da conexão deve ser fechado antes de tentar abri-lo novamente para que o código possa ser chamado repetidamente.
fonte
Para verificar o estado de conexão do banco de dados, você pode simplesmente fazer o seguinte
fonte
Para verificar o estado OleDbConnection, use isso:
State
devolver oConnectionState
Aqui estão os outros
ConnectionState
enumfonte
Eu uso a seguinte maneira
sqlconnection.state
fonte
connectionState.open()
não existe; você quis dizerConnectionState.Open
?