gpt4 book ai didi

c# - 在 C# 中,确定数据库是否已启动并正在运行的最佳方法是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 20:07:13 26 4
gpt4 key购买 nike

我想出了以下方法来确定数据库是否已启动并正在运行。这会尝试打开数据库连接,如果失败则返回 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();
}
}
}

这是确定此数据库是否正常运行的最佳方法吗?我不喜欢这种方法的原因在于它依赖于超时值,并且只要设置了超时就会花费。

有没有更好的办法?

最佳答案

这实际上完全取决于您要确定的内容。如果您真的想确定“服务器是否正在运行并且能够被访问”,那么我会说这很可能是最有效的方式。我这样说的原因是服务器本身可能已启动,但它可能不接受连接,或者应用程序正在使用的连接可能无效(用户名/密码不正确)。

因此,鉴于此,超时是必需的,因为您想要验证真正的连接。如果您想简单地查看服务器是否存在,您可以尝试 ping,但这只会告诉您设备是否处于事件状态,不一定告诉您 SQL Server 是否已完全启动并运行并且可用。

关于c# - 在 C# 中,确定数据库是否已启动并正在运行的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/927567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com