Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 29

ComboBox обновление значения в ValueMember из БД

07.06.2019, 22:36. Показов 1810. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. На форме имеется три комбоБокса.
Кликните здесь для просмотра всего текста
Заполняются следующим образом
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
private void Form_Load(object sender, EventArgs e) // Заполнение первого комбоБокса
        {
            try
            {
                MySqlDataAdapter da = new MySqlDataAdapter("SELECT * FROM unit ORDER BY number", connection); 
                DataTable dt = new DataTable();
                da.Fill(dt);
                comboBox1.DataSource = dt;
                comboBox1.DisplayMember = "unit";
                comboBox1.ValueMember = "name";
                comboBox1.ValueMember = "registration_number";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) // Заполнение второго комбоБокса
        {
            try
            {
                MySqlDataAdapter da1 = new MySqlDataAdapter("SELECT * FROM subdivision s WHERE s.unitRegNumber = ' " + comboBox1.SelectedValue + " ' ", connection);
                DataTable dt1 = new DataTable();
                da1.Fill(dt1);
                comboBox2.DataSource = dt1;
                comboBox2.DisplayMember = "subdivision";
                comboBox2.ValueMember = "name";
                comboBox2.ValueMember = "registration_number";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) // Заполнение третьего комбоБокса
        {
            try
            {
                MySqlCommand cmd = connection.CreateCommand();
                cmd.CommandText = "SELECT concat(concat(u.surname,' '),concat(u.name,' '), u.patronymic) as FIO, u.subdivRegNumber, u.registration_number FROM user u WHERE u.subdivRegNumber = ' " + comboBox2.SelectedValue + " ' ";
                DataTable dt2 = new DataTable();
                MySqlDataAdapter da2 = new MySqlDataAdapter(cmd);
                //connection.Open();
                da2.Fill(dt2);
                comboBox3.DataSource = dt2;
                comboBox3.DisplayMember = "FIO";
                comboBox3.ValueMember = "registration_number";
                HelperClass3.Value = comboBox3.SelectedValue.ToString();
                comboBox3.ValueMember = "subdivRegNumber";
                
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Суть проблемы: мне нужно занести в таблицу "message" значение comboBox3.ValueMember = "registration_number", но если в подразделении находятся несколько сотрудников, то в таблицу "message" заносится только значение "registration_number" первого сотрудника(если выбрать второго сотрудника в отделе, "registration_number" остается первого)
Кликните здесь для просмотра всего текста
Вопрос: как сделать так, чтобы "registration_number" обновлялся при выборе сотрудника?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2019, 22:36
Ответы с готовыми решениями:

Программный выбор ComboBox по ValueMember
Привет, друзья. Не пинайте сильно, но третий день не могу найти решение. Есть ComboBox, есть ArrayList, устанавливаю свойству ...

Обновление столбца listview при выборе значения в combobox
Подскажите, пожалуйста, как сделать? чтобы при выборе соответствующего значения в combobox обновлялся столбец в listview

Вывод значения DisplayMember, зная его ValueMember
Возникла проблема. Есть 3 combobox и бд. Все три имеют "общий" ValueMember и различный DisplayMember. Как изменить в двух других...

4
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
07.06.2019, 22:50
Jestky, Почему ValueMember у всех cb дублируется ?

Добавлено через 1 минуту
Вы при каждом выборе запрос к БД делаете. Про EF слышали ?
0
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 29
07.06.2019, 22:59  [ТС]
PoPsa85, В первом комбоБоксе "registration_number" - первичный ключ unit. Во втором unitRegNumber (внешний ключ) subdivision равняется comboBox1.ValueMember = "registration_number" (Думал, что по аналогии с SQL запросом делать нужно SELECT * FROM unit u, subdivision s WHERE u.registration_number = s.unitRegNumber). А в comboBox3.Value.Member ="registration_number" нужен для связи с другой таблицей(в данном вопросе она не нужна). А про EF не слышал.
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
07.06.2019, 23:31
Jestky, Очень рекомендую ознакомиться с Entity Framework (есть в NuGet) и работать с объектами. Делать каждый раз запрос к БД еще и в UI потоке - плохое решение. По коду, сложно понять в чем ошибка, не видя, что возвращает запрос. У комбобкса не может быть несколько ValueMember. Тоесть если вы привязываете объект { Name = "Vasya", ID = "1" }
DisplayMember = "Name" будет означать, что в интерфейсе у вас будет отображаться поле Name, а ValueMember = "ID" значит, что SelectedValue будет возвращать ID. А SelectedItem вернет весь объект, в вашем случае Row.
1
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 29
07.06.2019, 23:37  [ТС]
PoPsa85, по поводу Entity Framework - возьму на заметку. А что касается моего вопроса - попробую поковырять код/посмотрю варианты в интернете.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.06.2019, 23:37
Помогаю со студенческими работами здесь

Combobox: выбор значения по ID (ValueMember)
Следующим образом заполняю combobox Dim DT As New Data.DataTable MainForm.makeRequest("SELECT `id`, `title` FROM...

Combobox.datasource, несоответствие Id и значения при использовании displaymember, valuemember
Проблема следующего характера: вытягиваю из базы данных поля ID и Color посредством SqlDataAdaptet и DataSet, задаю Displaymember - поле...

ComboBox и ValueMember: использование источника данных
В WinForms работает следующий метод public void FillLB() { SqlConnection sqlconn1 = new...

Использовать ValueMember и DisplayMember для ComboBox, который привязан к источнику данных
при привязке данных к combobbox'у необходимо указать ValueMember и DisplayMember для доступа к СВОЙСТВАМ(PROPERTY) значение и отображения...

ComboBox. Прибинденная таблица. При значении sorted=true, valuemember не соответствует displaymember
Есть ComboBox К нему прибиндена табличка TABLE из двух полей: KOD, NAME В свою очередь значение ComboBox'а пишется в другую табличку...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru