检查SQL连接是打开还是closures
你如何检查是否打开或closures我正在使用
if (SQLOperator.SQLCONNECTION.State.Equals("Open"))
然而,即使国家是“公开”,它在这个检查失败。
你应该使用SqlConnection.State
例如,
if (myConnection != null && myConnection.State == ConnectionState.Closed) { // do something // ... }
这是我正在使用的:
if (mySQLConnection.State != ConnectionState.Open) { mySQLConnection.Close(); mySQLConnection.Open(); }
我不是简单地使用的原因:
if (mySQLConnection.State == ConnectionState.Closed) { mySQLConnection.Open(); }
是因为ConnectionState也可以是:
Broken, Connnecting, Executing, Fetching
此外
Open, Closed
此外,微软表示,closures,然后重新打开连接“将刷新状态的价值”。 看到这里http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.state(v=vs.110).aspx
.NET文档说: 状态属性:ConnectionState值的按位组合
所以我认为你应该检查
!myConnection.State.HasFlag(ConnectionState.Open)
代替
myConnection.State != ConnectionState.Open
因为国家可以有多个标志。
检查一个MySQL连接是否打开
ConnectionState state = connection.State; if (state == ConnectionState.Open) { return true; } else { connection.Open(); return true; }
你也可以使用这个
if (SQLCON.State == ConnectionState.Closed) { SQLCON.Open(); }
这个代码有点防御性,打开连接之前检查状态。 如果连接状态是断开,那么我们应该尝试closures它。 断开表示连接先前已打开,但function不正常。 第二个条件决定在尝试再次打开连接之前必须closures连接状态,以便可以重复调用代码。
// Defensive database opening logic. if (_databaseConnection.State == ConnectionState.Broken) { _databaseConnection.Close(); } if (_databaseConnection.State == ConnectionState.Closed) { _databaseConnection.Open(); }
要检查数据库连接状态,您可以简单地执行以下操作
if(con.State == ConnectionState.Open){}
我使用下面的方式sqlconnection.state
if(conexion.state != connectionState.open()) conexion.open();