检查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();