Ręczne wypełnianie DataGridView

0

Witam,
Będę stosował ręczne wypełnianie DataGridView i pięknie działa takie coś:

            string conn = "Data Source=KOMP\\SQLEXPRESS;Initial Catalog=bazka;User ID=sa;Password=bzimbzibol";
            SqlConnection objConn = new SqlConnection(conn);
            string sql = "Select * From Tabela1";
            SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
            DataTable dt = new DataTable();
            DataSet ds = new DataSet();
            objConn.Open();
            adapter.Fill(dt);
            ds.Tables.Add(dt);
            objConn.Close();
            dgvTest.DataSource = ds.Tables[0];

Nagle (po 2 dniach) okazało się, że po zakomentowaniu SqlConnection też działa:

            string conn = "Data Source=KOMP\\SQLEXPRESS;Initial Catalog=bazka;User ID=sa;Password=bzimbzibol";
            //  SqlConnection objConn = new SqlConnection(conn);
            string sql = "Select * From Tabela1";
            SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
            DataTable dt = new DataTable();
            DataSet ds = new DataSet();
            //  objConn.Open();
            adapter.Fill(dt);
            ds.Tables.Add(dt);
            //  objConn.Close();
            dgvTest.DataSource = ds.Tables[0];

Które jest poprawne i dlaczego?

Cierpliwych proszę o wyczerpującą odpowiedź,
niecierpliwych proszę o szybką odpowiedź.
A za wszystkie bardzo dziękuję.
mm

1

SqlDataAdapter sam dba o utworzenie odpowiedniego połączenia, wykonanie niezbędnych operacji i zamknięcie połączenia. Nie potrzeba wtedy obiektu SqlConnection, który reprezentuje otwarte połączenie z bazą.

1 użytkowników online, w tym zalogowanych: 0, gości: 1