Пометка признака выбора строки DataGridView в источнике данных - Visual Basic .NET
Формулировка задачи:
Имеется DataTable - DT с колонками SEL и ULCODE.
Имеется Форма FRM с DataGridView - DGV_LPU с колонкой ULCODE.
Далее указано:
Необходимо в таблице DT заполнить поле SEL значением "S", если соответствующая строка ВЫБРАНА в DataGridView и "" в противном случае.
Просьба подсказать решение проблемы
Проблема решена, хотя связь DataGridView с источником данных (DataTable) в DOTNET оставляет желать лучшего.
Решение задачи: «Пометка признака выбора строки DataGridView в источнике данных»
textual
Листинг программы
DataTable dt = dataGridView1.DataSource as DataTable;
//Или берем ту DataTable, которую сами указали
DataGridViewRow row = dataGridView1.SelectedRows[0];
//Это в случае, если стоит свойство MultiSelect = false.
//В противном случае все это нужно делать для каждой строки в выборке строк
//Формируем запрос
string query = "id = " + row.Cells["id"].Value.ToString();
//Делаем выборку из DataTable,
//для этого берем 0-ю строку, т.к. id уникальное значение и строка будет единственная
DataRow dRow = dt.Select(query)[0];
//Получаем id в DataTable той строки, которая выбрана в DataGridView
int id = Convert.ToInt32(dRow["id"]);
//Ну а так вариант "все в одной куче"
int id_ = Convert.ToInt32((dataGridView1.DataSource as DataTable).Select("id = " +
dataGridView1.SelectedRows[0].Cells["id"].Value.ToString())[0]["id"]);