Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Доступ к данным из SQL при клике по строке в DataG


Автор: Anatolyevich 22.4.2011, 10:39
Проект Windows Forms @ C#

 Имеется табличка (далее SQLTable) в базе данных SQL (SQL).
 Имеется DataGridView (DGV), к которой привязана информация из SQLTable.
 При клике по ячейке (CellContentClick event of DataGridView) создаем обработчик событий.

 Вопрос в том как получить доступ внутри этого ивэнта к данным SQLTable опираясь на информацию о нажатой ячейке. (как получить эту информацию кроме как через e.ColumnIndex и e.RowIndex я тоже не знаю).

 Если кто может помочь - был бы крайне признателен.

Автор: Экскалупатор 22.4.2011, 11:58
Anatolyevich, если у тебя в гриде есть колонка с ID этой строки в базе, то сделай селект и получи данные удовлетворяющие данному ID

Автор: Anatolyevich 22.4.2011, 12:02
Вот как получить текст этой ячейки? Через координаты ячейки в DataGridView?
Или есть более простой способ?

Автор: Экскалупатор 22.4.2011, 12:40
по событию нажатия на ячейку(или строку в целом) у тебя есть параметры. через них и получай.
к примеру так:
Код

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int i = e.RowIndex;
            int id = Convert.ToInt32(this.dataGridView1.Rows[i].Cells["id"]);
        }


т.е. получаешь номер строки в гриде на которую кликнули, потом по номеру берешь строку и в этой строке ищешь конкретную ячейку.

Автор: jonie 22.4.2011, 20:37
вообще говоря это будет работать, но это крайне неверно. Надо работать не с гридом, а с данными.

Автор: Anatolyevich 22.4.2011, 23:22
Те. иначе как через e.RowIndex и e.CellIndex данные ячейки и строки по которой кликнули - не достать?

Автор: jonie 22.4.2011, 23:28
Anatolyevich, сделай связь через BindingSource у него есть CurrentObject или как-то так - его и поулчай, это и будет "выделенный".

Автор: Экскалупатор 23.4.2011, 01:22
Anatolyevich, варианты возможны всегда, я обозначил один подход, jonie, показал как сделать по другому, думаю если подумать то можно еще как то решить, все зависит от задачи...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)