Jak sprawdzić, czy jest otwarty czy zamknięty, którego używałem
if (SQLOperator.SQLCONNECTION.State.Equals("Open"))
jednak nawet stan „otwarty” nie powiedzie się w tej kontroli.
c#
ado.net
sqlconnection
Pedro Franco
źródło
źródło
SqlConnectionState
wyliczenia jako wyliczenia i nie zamieniaj go w ciąg .....using System.Data;
w odpowiedzi, IMHO. Zapomniałem tej przestrzeni nazw (miałemusing System.Data.SqlClient
) i nie mogłem wymyślić, jak uzyskaćConnectionState
jako słowo kluczowe, dopóki go nie dodałem. Mam nadzieję, że to komuś pomoże.if (myConnection == null || myConnection.State == ConnectionState.Closed) { //Connection is closed } else { //Connection is open in some way }
? W ten sposób, jeśli połączenie jest zerowe, jest również „zamknięte”.Oto czego używam:
Powód, dla którego nie używam po prostu:
Dzieje się tak, ponieważ ConnectionState może być również:
Oprócz
Ponadto firma Microsoft stwierdza, że zamknięcie, a następnie ponowne otwarcie połączenia „odświeży wartość stanu”. Zobacz tutaj http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.state(v=vs.110).aspx
źródło
mySQLConnection.State != ConnectionState.Open && mySQLConnection.State != ConnectionState.Connecting
uniknąć resetowania przy wolnych połączeniach, prawda?Dokumentacja .NET mówi: Właściwość stanu: bitowa kombinacja wartości ConnectionState
Więc myślę, że powinieneś sprawdzić
zamiast
ponieważ stan może mieć wiele flag.
źródło
Sprawdź, czy połączenie MySQL jest otwarte
źródło
return true;
? umieść go na końcu metody, pozaif
/else
!możesz również tego użyć
źródło
using System.Data;
dla każdego, kto nie wiedział lub nie wiedział, dlaczego to nie działaTen kod jest trochę bardziej defensywny, przed otwarciem połączenia sprawdź stan. Jeśli stan połączenia jest uszkodzony, powinniśmy spróbować go zamknąć. Zepsuty oznacza, że połączenie zostało wcześniej otwarte i nie działa poprawnie. Drugi warunek określa, że stan połączenia musi zostać zamknięty przed próbą ponownego otwarcia, aby kod mógł być wywoływany wielokrotnie.
źródło
Aby sprawdzić stan połączenia z bazą danych, możesz po prostu wykonać następujące czynności
źródło
Aby sprawdzić stan OleDbConnection, użyj tego:
State
ZwróćConnectionState
Oto inne
ConnectionState
wyliczenieźródło
Używam następującego sposobu
sqlconnection.state
źródło
connectionState.open()
nie istnieje; pan miał na myśliConnectionState.Open
?