Почему всегда закрывать соединение с базой данных?

Если соединение с базой данных требует много ресурсов, почему соединение с базой данных всегда должно быть закрыто в вашем приложении, если вам нужно открыть его снова? Могу ли я просто сделать это соединение доступным во всем приложении, чтобы другие классы и методы могли использовать его повторно?

Например (в псевдокоде):

public class PopulateGridViews()
{
    public SqlConnection conn = new SqlConnection(@"Database:DATABASE");
    conn.Open();

    void PopulateGrid1()
    {
        SqlCommand cmd = new SqlCommand("SELECT * FROM TABLE1");
        cmd.Connection = conn;
        cmd.ExecuteNonQuery();
        cmd.Dispose();
        // Populate Grid1
    }

    void PopulateGrid2()
    {
        SqlCommand cmd = new SqlCommand("SELECT * FROM TABLE2");
        cmd.Connection = conn;
        cmd.ExecuteNonQuery();
        cmd.Dispose();
        // Populate Grid2
    }
}

Ответы на вопрос(3)

Ваш ответ на вопрос