سؤال

لدي هذا الرمز البسيط لاختبار أن ديسيبل جاهز:

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) والإنترنت ولم أجد شيئًا في كيفية إصلاح هذا.

أي شخص آخر يكون لهذه المشكلة؟ أو ، هل هناك أي أفكار أخرى حول كيفية إخبار التطبيق بأن DB جاهز؟

هل كانت مفيدة؟

المحلول

أقوم بتوزيع الاختلاف على الكود ، لكن هذا 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();
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top