Pregunta

Tengo este código simple de probar que una base de datos está listo:

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

No quiero para ejecutar una consulta, sólo para comprobar la conexión, pero no importa lo que se ignora el tiempo de espera de parámetros. Que busco aquí (Stackoverflow) e internet y no encontré nada en cómo solucionar este problema.

Cualquier uno más tiene este problema? O, ¿hay otras ideas sobre cómo informarle a la aplicación que el PP está listo?

¿Fue útil?

Solución

Me disculpo por la differenc código, pero esto es C # y lo he utilizado en el pasado. Es bastante simple y debe ser legible.

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();
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top