se (--SE--) usi un DataReader, prova a passare come parametro alla ExecuteReader il comportamento che deve avere il tuo Command.
In questo modo quando chiudi il DataReader (che e' un oggetto CONNESSO, al contrario di DataTable e DataSet etc) si chiude in automatico anche la connessione.
codice:
protected void bottoneConnetti_Click(sender As Object, e As System.EventArgs)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection);
Grid.DataSource = reader;
Grid.DataKeyNames = new string[] { "Id" };
Grid.DataBind();
//etc.
}
}