¿Cuál es el mejor enfoque para abrir / cerrar SqlConnection en C #?

Me gustaría saber cuál podría ser el mejor enfoque para abrir unSqlConnection conSql Server 2008R2 Express Edition Base de datos. Esta versión de SQL tiene limitaciones de uso de RAM y uso de CPU, por lo que debemos adoptar algo mejor para abrir unSqlConnection.

En este momento estoy comprobando la conexión al inicio y al final de cada método. Aquí hay un ejemplo de eso.

   private void CheckValidId(string Id)
    {
        CheckConnectionStatus();

        try
        {
            sqlConnection.Open();
            sqlCommand = new SqlCommand("select * from ValidId where id=@id", sqlConnection);
            sqlCommand.Parameters.AddWithValue("@id", Id);
            sqlDataReader = sqlCommand.ExecuteReader();
            While (sqlDataReader.Read())
            {
               string Test = sqlDataReader["Id"].toString();
               MessageBox.Show("Value of Id : " , Test);
            }
        }
        catch (Exception exp)
        {
            MessageBox.Show(exp.Message.ToString(), "Exception in CheckValidId");
        }
        finally
        {
            CheckConnectionStatus();
        }
    }

Aquí estáCheckConnectionStatus Método

    private void CheckConnectionStatus()
    {
        if (sqlConnection.State == ConnectionState.Open)
        {
            sqlConnection.Close();
        }
    }

¿Cuál es el mejor enfoque para realizar esta operación?

Gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta