目前,我正在使用以下代码来检查数据库是否可访问:

public bool IsDatabaseOnline(string con)
{
    bool isConnected = false;
    SQLConnection connect = null;

    try {
        connect = new SQLConnection(con);
        connect.Open();
        isConnected = true;

    } catch (Exception e) {
        isConnected = false;

    } finally {
        if (connect != null)
            connect.Close();
    }

    return isConnected;
}

虽然此代码可以正常工作,但有一个缺点。如果服务器不在线,则在确定连接不可用之前会花费大约4整秒钟的时间尝试打开连接。

有没有一种方法可以测试连接而无需尝试实际打开连接并等待超时?类似于ping的数据库?

最佳答案

您可以将连接超时更改为更短。做一些测试,看看能走多低,仍然可靠。我敢打赌,您可能会接近500毫秒。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectiontimeout.aspx

关于c# - ADO.NET:检查数据库服务器是否可访问的更快方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2762029/

10-09 21:59