Vb.net SQL连接中超时不工作

Vb.net SQL连接中超时不工作,vb.net,Vb.net,我有一个简单的代码来测试DB是否准备就绪: Function testlocalcon() As Boolean Dim constr As String = _clconstr Try Using t As New SqlConnection() constr = constr & " ; Connect Timeout=1" If Not t.State = Data.ConnectionState.

我有一个简单的代码来测试DB是否准备就绪:

Function testlocalcon() As Boolean
    Dim constr As String = _clconstr

    Try
        Using t As New SqlConnection()
            constr = constr & " ; Connect Timeout=1"

            If Not t.State = Data.ConnectionState.Open Then
                t.ConnectionString = constr

                t.Open()
                If t.State = Data.ConnectionState.Open Then
                    Return True
                Else
                    Return False
                End If
            Else
                Return True
            End If
        End Using
    Catch ex As Exception
        Return False
    End Try
End Function
我不想执行查询,只想检查连接,但不管超时参数被忽略了什么。我在这里搜索Stackoverflow和internet,没有找到任何关于如何修复此问题的信息


还有谁有这个问题吗?或者,关于如何让应用程序知道数据库已经准备好了,还有其他想法吗?

我对代码differic表示赞同,但这是C,我过去曾使用过它。它非常简单,应该是可读的

private SQLServerConnection
private SqlConnection _SQLServerConnection;
public SqlConnection SQLServerConnection
    {
        get
        {
            return _SQLServerConnection;
        }
        set
        {
            _SQLServerConnection = value;
        }
    }

private void SetSQLServerConnectionString (string sqlServerName, string databaseName, string saPassword, int connectTimeout)
{
    SQLServerConnection = new SqlConnection("Password=" + saPassword + ";Persist Security Info=True;User ID=sa;Initial Catalog=" + databaseName + ";Data Source=" + sqlServerName + ";connection timeout=" + connectTimeout.ToString(CultureInfo.InvariantCulture));
}

internal bool TestSQLServerConnection(string sqlServerName, string databaseName, string saPassword, int connectTimeout)
{
    try
    {
        SetSQLServerConnectionString(sqlServerName, databaseName, saPassword, connectTimeout);
        SQLServerConnection.Open();
        return true;
    }
    catch (SqlException e)
    {

        return false;
    }
    finally
    {
        SQLServerConnection.Close();
    }
}

嘿,约翰,谢谢,但是你的代码和我的完全一样,它不工作,它只是忽略了超时值。。。我也复制了你的代码并使用它,但是超时参数被忽略了。。还有其他想法吗?我不同意,我一直在使用此代码供安装人员验证服务器是否存在,并且运行良好。我只是想问一下……如果只是检查服务器是否可用,为什么还要担心超时?同样值得注意的是,如果将连接超时设置为1,那么它只会尝试1秒连接到服务器。连接超时/连接超时:在终止之前等待连接到服务器的时间长度(秒)。默认值为15。引用我的话,我也看到了同样的问题。我在一个快速的本地网络上,所以我不想在尝试的连接失败之前等待30秒。为什么连接超时不会导致更快的失败?您是在尝试设置连接超时还是命令超时?它们是两种不同的东西。