#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
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

