Официальный сайт студ.городка НГТУ
Программирование и БД » не обновляется DataGridView 

#1  11.03.12 15:21

не обновляется DataGridView

пишу приложение, которое соединяется с БД postgreSQL, выполняет запрос и выводит результат в таблицу. запрос выполняется верно, в таблицу что то приходит. но она не обновляется на форме, как была пустая так и остается, причем в дебаге в таблице че то есть (35 строк в таблицу поместилось), но на форму не выводится.
Код:

        private void button1_Click(object sender, EventArgs e)
        {
            OdbcConnection cn;

            //создание табличного пространства
            cn = new OdbcConnection();
            //подсоединяемся к базе данных
            cn.ConnectionString = "DRIVER={PostgreSQL UNICODE};DATABASE=postgres;SERVER=127.0.0.1;PORT=5432;Uid=postgres;Pwd=423843;";
            cn.Open();

            dataGridView1 = new DataGridView();
            OdbcCommand command = new OdbcCommand("select id_kurs, id_napr, nazv_kurs, stoim_kurs, kolich_chas from institute. \"Kurs\";", cn);
            OdbcDataReader reader = command.ExecuteReader();
            dataGridView1.Rows.Clear();
            dataGridView1.Columns.Add("id_kurs", "id_kurs");
            dataGridView1.Columns.Add("id_napr", "id_napr");
            dataGridView1.Columns.Add("nazv_kurs", "nazv_kurs");
            dataGridView1.Columns.Add("stoim_kurs", "stoim_kurs");
            dataGridView1.Columns.Add("kolich_chas", "kolich_chas");
            while (reader.Read())
            {
                dataGridView1.Rows.Add(reader["id_kurs"].ToString().TrimEnd(),
                                        reader["id_napr"].ToString().TrimEnd(),
                                        reader["nazv_kurs"].ToString().TrimEnd(),
                                        reader["stoim_kurs"].ToString().TrimEnd(),
                                        reader["stoim_kurs"].ToString().TrimEnd());
            }
            reader.Close();
            dataGridView1.Show();
            dataGridView1.Refresh();
            cn.Close();
        }

Offline

#2  11.03.12 19:04

sav
Профиль

Re: не обновляется DataGridView

Что я вижу:
1. Ты создаешь некоторое представление:
dataGridView1 = new DataGridView()
2. добавляешь к нему список колонок
3. заполняешь.
4. отображаешь.
5. рефрешишь.

Вопрос, а как приложение знает, где, как, относительно чего расположить dataGridView1?

Извиняюсь, если совсем не в тему конечно.
http://msdn.microsoft.com/en-us/library … .aspx#Y291
НЕ вижу у тебя аналога вызова:

private DataGridView songsDataGridView = new DataGridView();
...
this.Controls.Add(songsDataGridView);

Исправлено sav (11.03.12 19:06)

Offline

#3  13.03.12 15:13

Re: не обновляется DataGridView

Не силен в программировании, но согласен с sav. Если предполагается динамическое добавление контрола на форму, то приложению нужно сообщит что и куда добавлять через метод Controls.add. Если же в динамическом добавления элемента формы нет необходимости, то  данный код будет нормально работать если кинуть dataGridView на макет формы в конструкторе, назвать его dataGridView1 так же в конструкторе  и убрать из кода строку dataGridView1 = new DataGridView(); которая по сути создает новый экземпляр класса DataGridView, но сама по себе не добавляет его как объект формы.

Исправлено eagle (13.03.12 15:14)

Offline

#4  14.03.12 04:24

Re: не обновляется DataGridView

Так-то sav, прав.

Offline

#5  14.03.12 19:04

Re: не обновляется DataGridView

По-нормальному надо заполнять DataSet, при том через DataAdapter, а затем уже биндить её на гриду

Offline

Программирование и БД » не обновляется DataGridView 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.035 сек.
Выполнено 14 запросов.