Как проверить, открыт он или закрыт? Я использовал
if (SQLOperator.SQLCONNECTION.State.Equals("Open"))
однако, даже если состояние «открыто», оно не проходит эту проверку.
c#
ado.net
sqlconnection
Педро Франко
источник
источник
SqlConnectionState
перечисление как перечисление, а не превращайте его в строку .....using System.Data;
в ответ, ИМХО. Я забыл это пространство имен (былоusing System.Data.SqlClient
) и не мог понять, как получитьConnectionState
в качестве ключевого слова, пока не добавил его. Надеюсь, это кому-то поможет.if (myConnection == null || myConnection.State == ConnectionState.Closed) { //Connection is closed } else { //Connection is open in some way }
? Таким образом, если соединение нулевое, оно также «закрыто».Вот что я использую:
Причина, по которой я не просто использую:
Потому что ConnectionState также может быть:
В дополнении к
Кроме того, Microsoft заявляет, что закрытие, а затем повторное открытие соединения «обновит значение состояния». См. Здесь http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.state(v=vs.110).aspx
источник
mySQLConnection.State != ConnectionState.Open && mySQLConnection.State != ConnectionState.Connecting
чтобы избежать сброса при медленном соединении, не так ли?В документации .NET говорится: State Property: побитовая комбинация значений ConnectionState.
Я думаю, тебе стоит проверить
вместо того
потому что состояние может иметь несколько флагов.
источник
Проверьте, открыто ли соединение MySQL
источник
return true;
? поместите его в конец метода, внеif
/else
!вы также можете использовать это
источник
using System.Data;
для тех, кто не знал или не знал, почему это не работаетЭтот код является немного более защитным, прежде чем открывать соединение, проверьте состояние. Если состояние соединения разорвано, мы должны попытаться закрыть его. Разорванный означает, что соединение ранее было открыто и работает некорректно. Второе условие определяет, что состояние соединения должно быть закрыто перед повторной попыткой его открытия, чтобы код можно было вызывать повторно.
источник
Чтобы проверить состояние подключения к базе данных, вы можете просто сделать следующее
источник
Чтобы проверить состояние OleDbConnection, используйте это:
State
вернутьConnectionState
Вот другое
ConnectionState
перечислениеисточник
Я использую следующий способ
sqlconnection.state
источник
connectionState.open()
не существует; ты имел ввидуConnectionState.Open
?