你如何检查我使用的是打开还是关闭
if (SQLOperator.SQLCONNECTION.State.Equals("Open"))
Run Code Online (Sandbox Code Playgroud)
然而,即使是国家"开放",它也没有通过这项检查.
小智 161
您应该使用SqlConnection.State
例如,
using System.Data;
if (myConnection != null && myConnection.State == ConnectionState.Closed)
{
// do something
// ...
}
Run Code Online (Sandbox Code Playgroud)
the*_*mbo 50
这是我正在使用的:
if (mySQLConnection.State != ConnectionState.Open)
{
mySQLConnection.Close();
mySQLConnection.Open();
}
Run Code Online (Sandbox Code Playgroud)
我不是简单地使用的原因:
if (mySQLConnection.State == ConnectionState.Closed)
{
mySQLConnection.Open();
}
Run Code Online (Sandbox Code Playgroud)
是因为ConnectionState也可以是:
Broken, Connnecting, Executing, Fetching
Run Code Online (Sandbox Code Playgroud)
此外
Open, Closed
Run Code Online (Sandbox Code Playgroud)
此外,微软声称关闭,然后重新打开连接"将刷新State的价值".请参阅http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.state(v=vs.110).aspx
csn*_*910 21
.NET文档说:State属性:ConnectionState值的按位组合
所以我认为你应该检查一下
!myConnection.State.HasFlag(ConnectionState.Open)
Run Code Online (Sandbox Code Playgroud)
代替
myConnection.State != ConnectionState.Open
Run Code Online (Sandbox Code Playgroud)
因为State可以有多个标志.
检查MySQL连接是否已打开
ConnectionState state = connection.State;
if (state == ConnectionState.Open)
{
return true;
}
else
{
connection.Open();
return true;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
你也可以用它
if (SQLCON.State == ConnectionState.Closed)
{
SQLCON.Open();
}
Run Code Online (Sandbox Code Playgroud)
这段代码更具防御性,请在打开连接之前检查状态。如果连接状态为“断开”,则应尝试将其关闭。断开意味着该连接先前已打开并且无法正常运行。第二个条件确定必须再次关闭连接状态才能尝试再次打开它,以便可以重复调用该代码。
// Defensive database opening logic.
if (_databaseConnection.State == ConnectionState.Broken) {
_databaseConnection.Close();
}
if (_databaseConnection.State == ConnectionState.Closed) {
_databaseConnection.Open();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
256534 次 |
最近记录: |