Wie überprüfen Sie, ob es offen oder geschlossen ist, das ich verwendet habe?
if (SQLOperator.SQLCONNECTION.State.Equals("Open"))
Selbst wenn der Status "Offen" ist, schlägt dies bei dieser Prüfung fehl.
c#
ado.net
sqlconnection
Pedro Franco
quelle
quelle
SqlConnectionState
Aufzählung als Aufzählung undusing System.Data;
in der Antwort hinzufügen sollen , IMHO. Ich habe diesen Namespace vergessen (hatteusing System.Data.SqlClient
) und konnte nicht herausfinden, wie ichConnectionState
als Schlüsselwort komme, bis ich ihn hinzugefügt habe. Hoffe das hilft jemandem.if (myConnection == null || myConnection.State == ConnectionState.Closed) { //Connection is closed } else { //Connection is open in some way }
? Auf diese Weise wird die Verbindung, wenn sie null ist, auch "geschlossen".Folgendes verwende ich:
Der Grund, warum ich nicht einfach benutze:
Liegt daran, dass der ConnectionState auch sein kann:
Zusätzlich zu
Darüber hinaus gibt Microsoft an, dass durch Schließen und erneutes Öffnen der Verbindung "der Wert von State aktualisiert wird". Siehe hier http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.state(v=vs.110).aspx
quelle
mySQLConnection.State != ConnectionState.Open && mySQLConnection.State != ConnectionState.Connecting
das Zurücksetzen bei langsamen Verbindungen vermeiden sollten, oder?In der .NET-Dokumentation heißt es: State Property: Eine bitweise Kombination der ConnectionState-Werte
Also ich denke du solltest es überprüfen
anstatt
weil State mehrere Flags haben kann.
quelle
Überprüfen Sie, ob eine MySQL-Verbindung geöffnet ist
quelle
return true;
? Setzen Sie es am Ende der Methode außerhalb desif
/else
!Sie können dies auch verwenden
quelle
using System.Data;
für alle, die nicht wussten oder nicht wussten, warum es nicht funktionierteDieser Code ist etwas defensiver, bevor Sie eine Verbindung öffnen, überprüfen Sie den Status. Wenn der Verbindungsstatus unterbrochen ist, sollten wir versuchen, ihn zu schließen. Unterbrochen bedeutet, dass die Verbindung zuvor geöffnet wurde und nicht richtig funktioniert. Die zweite Bedingung bestimmt, dass der Verbindungsstatus geschlossen werden muss, bevor versucht wird, ihn erneut zu öffnen, damit der Code wiederholt aufgerufen werden kann.
quelle
Um den Datenbankverbindungsstatus zu überprüfen, gehen Sie einfach wie folgt vor
quelle
Verwenden Sie Folgendes, um den OleDbConnection-Status zu überprüfen:
State
Gib die ... wiederConnectionState
Hier sind die anderen
ConnectionState
Aufzählungenquelle
Ich benutze die folgende Art und Weise
sqlconnection.state
quelle
connectionState.open()
existiert nicht; meinst duConnectionState.Open
?