[Sql, ADO] DataSet->DataGridView

0

Mam problem przy ładowaniu pobranych danych z bazy danych (Dataset) do obiektu DataGridView.
Metoda przypisana dla buttona po jego wcisnieciu:
{

 if (connection.State == ConnectionState.Open)
            {
                string query = "SELECT * FROM titles"; //tab "titles"

                SqlDataAdapter da = new SqlDataAdapter(query, connection);//connection stworzony wczesniej
                da.Fill(dataSet1);
                dataGridView1.DataSource = dataSet1;
                
            }

}

Lecz dane się nie wyświetlają w gridzie.

0

Po

dataGridView1.DataSource = dataSet1;

brakuje

dataGridView1.DataBind();
0

Ew. zamiast dataSet możesz wykorzystać dataTable ( typ DataTable )

Wczoraj dokładnie miałem z tym problem i w/w sposób sobie poradziłem .. ale jak widzę, istnieje skuteczniejsza metoda :)

0
bind napisał(a)

Po

dataGridView1.DataSource = dataSet1;

brakuje

dataGridView1.DataBind();

Intelisense nie dysponuje taką metodą dla dataGridView. :)

0

W asp.net jest:)

Zakladam ze w dataset masz jedna tabele wiec uzyj tego

dataGridView1.DataSource = dataSet1.Tables[0];

jak masz wiecej to dataGridView1.DataSource = dataSet1.Tables["nazwatabeli"];

0
bind2 napisał(a)

W asp.net jest:)

Zakladam ze w dataset masz jedna tabele wiec uzyj tego

dataGridView1.DataSource = dataSet1.Tables[0];

jak masz wiecej to dataGridView1.DataSource = dataSet1.Tables["nazwatabeli"];

próbowałem
W edytorze VC# nie ma metody DataBind(). Wymaga ona użycia jakiejś diodatkowej dyrektywy?
Zaraz spróbuje napisa program ładujący nzestaw danych przed renderowaniem forma, bo do tej pory próbowałem ładowac po inicjalizacji i po renderze forma. Moze to coś zmieni.

Widziałem przykład:
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.datasource.aspx

Wszystko działa idealnie. Myślę że nie chodzi tu użycie komponentu BindingSource, lecz o czas, kiedy ładujemy dane.

0

Chodziło mi o aplikacje webowa tam jest, w aplikacji okienkowej (formach) nie ma tego.

        private void Form1_Load(object sender, EventArgs e)
        {
            string query = "SELECT * FROM Genre";
            string connectionString = "Data Source=xxxxxx;Initial Catalog=baza;User ID=user;Password=password";
            SqlDataAdapter da = new SqlDataAdapter(query, connectionString);
            DataSet ds = new DataSet();
            da.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];
        }

Na formie jest tylko grid. Po uruchomieniu masz okienko z gridem a w nim masz dane

0

co racja to racja, dzięki

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