【发布时间】:2009-05-29 18:57:14
【问题描述】:
我想出了以下方法来确定数据库是否已启动并正在运行。这会尝试打开一个数据库连接,如果失败则返回 false。
private static bool IsDatabaseConnectionUp(string connectionString)
{
System.Data.SqlClient.SqlConnection conn = null;
try
{
conn = new SqlConnection(connectionString);
conn.Open();
return conn.State == System.Data.ConnectionState.Open;
}
catch (SqlException)
{
// There was an error in opening the database so it is must not up.
return false;
}
finally
{
if (conn != null)
{
if (conn.State == System.Data.ConnectionState.Open)
{
conn.Close();
}
conn.Dispose();
}
}
}
这是确定此数据库是否已启动的最佳方法吗?我不喜欢这种方法的原因是它依赖于超时值,并且只要设置了超时值就可以了。
有没有更好的办法?
【问题讨论】:
-
你必须处理你的连接。
-
是的。您的连接似乎处于打开状态。
-
这只是一个示例代码,实际上我使用的是 Linq Datacontext,我正确处理了连接。