Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/27: Рейтинг темы: голосов - 27, средняя оценка - 4.59
EJcom
0 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 11
1

Как получить значение из столбца первичного ключа для строки, выделенной в datagridview

15.03.2014, 23:27. Просмотров 5619. Ответов 10
Метки нет (Все метки)

Имеем типизированный набор данных DataSet1 с таблицей DataTable1, в которой 3 поля id, name, address (int, string и string соответственно). В datagridview отображается только значения из name и address.
Нужно, чтобы при клике на строку из datagridview, в переменную отправлялось значение из поля id соответствующее этой записи.
DataSet заполняется из базы данных Postgresql.
Третий день курю умные книжки, мозг уже отказывает
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2014, 23:27
Ответы с готовыми решениями:

Как получить значение ячейки выделенной строки DataGridView?
Как получить значение ячейки выделенной строки DataGridView? Индекс столбца известен.

Получить значение столбца выделенной строки
Здравствуйте! Как можно получить содержимое, скажем, пятого столбца выделенной стоки в таблице?...

Как изменить значение первичного ключа?
Есть такая проблема: В таблице есть столбец - первичный ключ. Естественно, что запрос типа: ---...

Получить значение из DataGridView по номеру строки и столбца
зная X и Y можно ли получить значение поля из dataGridView?

10
sk007
Life Builder
515 / 485 / 370
Регистрация: 12.01.2011
Сообщений: 1,702
Завершенные тесты: 7
16.03.2014, 01:08 2
Вот так, да?
C#
1
2
3
4
5
6
7
8
9
10
private void dataGridView1_CurrentCellChanged(object sender, EventArgs e)
        {
            //column1, column2, column3 - Названия столбцов
            string id = dataGridView1["column1", dataGridView1.CurrentRow.Index].Value.ToString();
            string name = dataGridView1["column2", dataGridView1.CurrentRow.Index].Value.ToString();
            string address = dataGridView1["column3", dataGridView1.CurrentRow.Index].Value.ToString();
 
            //Вывод значении в Лабел
            label1.Text = string.Format("{0}\n{1}\n{2}", id, name, address);
        }
0
EJcom
0 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 11
16.03.2014, 16:47  [ТС] 3
Не совсем.
Вот так выглядит гридвьюв

Как получить значение из столбца первичного ключа для строки, выделенной в datagridview


А вот таблица в базе (и датасете естественно)

Название: datatablepostgresql.jpg
Просмотров: 695

Размер: 20.3 Кб

datagridview.CurrentRow.Index возвращает индекс из гридвьюва, то есть просто порядковый номер строки (0, 1, 2, 3 и тд).
А в лейбл надо отправить значение, соответствующее этой строке из поля id в дататейбле, который уже заполнен инфой из базы.
То есть тыкая на

|Сидоров | Нижние грязюки |

я должен увидеть 5 в лейбле
0
Ev_Hyper
Заблокирован
16.03.2014, 16:58 4
EJcom, не ясно почему не оставить поле ID в датагридвиев.

По-моему можно в обработчике клика, выбирать из БД ID, у которого name="Value" и адрес="Value".
Хотя в этом случае, при совпадении прийдется усложнить запрос.
0
EJcom
0 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 11
16.03.2014, 23:35  [ТС] 5
Если пользователь видит служебную информацию - это не кошерно.
В делфи был метод FindByName, есть ли тут аналог?
Я нашел только FindByполепервичногоключа
0
Ev_Hyper
Заблокирован
16.03.2014, 23:59 6
EJcom, а выводить её в лейбл это кошерно ?

И, считаю, что показывать количество чего-либо очень удобно.

Цитата Сообщение от EJcom Посмотреть сообщение
В делфи был метод FindByName, есть ли тут аналог?
Я нашел только FindByполепервичногоключа
вы не могли бы поподробнее рассказать об этом методе?

И, насколько я понял, в обработчике клика, выбирать из БД ID, у которого name="Value" и адрес="Value" не вариант?
0
EJcom
0 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 11
17.03.2014, 06:57  [ТС] 7
Ввод в лейбл я привел для простоты объяснения того, что требуется.


И, насколько я понял, в обработчике клика, выбирать из БД ID, у которого name="Value" и адрес="Value" не вариант?
Как раз таки вариант. Это я и хочу сделать, но не могу догнать как именно
0
kontuPauk
304 / 302 / 125
Регистрация: 29.01.2013
Сообщений: 638
Записей в блоге: 1
Завершенные тесты: 1
17.03.2014, 09:18 8
Лучший ответ Сообщение было отмечено EJcom как решение

Решение

А посмотреть-то поле ID выбранной строки никак? Что-то вроде
C#
1
int selectedId = DataTable1.Rows[dataGridView1.CurrentRow.Index]["ID"];
1
Ev_Hyper
Заблокирован
17.03.2014, 09:19 9
Лучший ответ Сообщение было отмечено EJcom как решение

Решение

EJcom, и еще один вариант, на мой взгляд удачнее предыдущего:
Загружать в датагридвиев всю информацию, но первый столбец делать невидимым.
1
EJcom
0 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 11
18.03.2014, 21:26  [ТС] 10
Ответ как всегда был под носом)
0
EJcom
0 / 0 / 0
Регистрация: 15.03.2014
Сообщений: 11
22.03.2014, 13:33  [ТС] 11
kontuPauk, вариант не удачный.
При использовании стандартной сортировки (тык по шапке столбца) или фильтров, то есть смены позиции выбранного элемента в списке, получается ерунда.
0
22.03.2014, 13:33
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2014, 13:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Получить значение выделенной ячейки DataGridView
Есть datagridview состоящий из одного столбца как вытащить содержимое выделенной ячейки???

Как в диаграмме классов UML Static Structure задать атрибуту значение первичного ключа?
Подскажите, пожалуйста, как в Visio 2003 в диаграмме классов UML Static Structure задать атрибуту...

Получить данные выделенной строки DataGridView
Здравствуйте. На C# только начал писать, осваиваю помаленьку. Пишу приложение для взаимодействия...

Присвоить ComboBox значение выделенной строки в DataGridView
Здравствуйте! Почему так не работает? comboBox1.Text = dataGridView.Value.ToString(); C...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.