|
0 / 0 / 0
Регистрация: 09.04.2023
Сообщений: 39
|
|
ComboBox и БД22.05.2023, 13:36. Показов 1440. Ответов 6
Метки нет (Все метки)
Добрый день! Посоветуйте ка правильно организовать работу ComboBox с БД.
У меня есть БД в которой есть несколько таблиц type(содержит типы устройство: системный блок, монитор, ибп....), model(конфигурация и модели устройство для каждого типа: монитор-samsung20..; системный блок HP 490 i5/... ), device (тип-модель -серийный номер: монитор-samsung20-1234543435). Каждая таблице имеет индексы-первичный ключ, внешний ключ и на самом деле таблицы содержат значения индексов а не типы и модели устройств, например таблица type ************************************** *id(pk)* tipe * ************************************** * 1 * ибп * 2 * монитор * 3 * сист.бл. таблица model ************************************** *id(pk)* id_type(fk)*model ************************************** * 1 * 1 * APC 1100 * 2 * 1 * APC 1000 * 3 * 2 * samsung20 * 4 * 2 * Benq21 * 5 * 3 * HP 490 таблица device ************************************** *id(pk)* id_type(fk)*id_model(fk)* sn ************************************** * 1 * 1 * 1 * 123123123 * 2 * 1 * 1 * 234234234 * 3 * 1 * 2 * 456456456 * 4 * 2 * 3 * 444123123 * 5 * 2 * 3 * 555234234 * 6 * 2 * 4 * 666656456 * 7 * 3 * 6 * 777898989 * * есть представления model ************************************** *id(pk)* tipe * model ************************************** * 1 * ибп * APC 1100 * 2 * ибп * APC 1100 * 3 * ибп * APC 1000 * 4 * монитор * samsung20 * 5 * монитор * samsung20 * 6 * монитор * Benq21 device ************************************** *id(pk)* tipe * model * sn ************************************** * 1 * ибп * APC 1100 * 123123123 * 2 * ибп * APC 1100 * 234234234 * 3 * ибп * APC 1000 * 456456456 * 4 * монитор * samsung20 * 444123123 * 5 * монитор * samsung20 * 555234234 * 6 * монитор * Benq21 * 666656456 * 7 * Сист.бл. * HP 490 * 777898989 * Дальше, делаю форму с двумя ComboBox'ами type, model и список List - SN(серийный номер) в type соответственно гружу из БД по запросу типы устройств (ИБП,монитор,сист.бл.) при выборе типа в список model по запросу к БД грузится соответствующие модели типа, при выборе модели в список List гружу серийные номера. Вопрос. Когда я выбираю тип устройства из списка (например ИБП) я не знаю его ID что бы по нему найти соответствующие модели. Можно конечно написать запрос и вытащить этот ID и по нему уже искать, можно сделать запрос к таблице представления model и выбрать все соответствующие модели, а потом аналогично и со списком серийных номеров. Вообще с чем работать с таблицами или представлениями? Еще вариант, можно в combobox загрузить модель которая будет описывать объект в котором будет храниться ID и type. Как правильно?
0
|
|
| 22.05.2023, 13:36 | |
|
Ответы с готовыми решениями:
6
Как связать два ComboBox так, чтобы при заполнении одного ComboBox он соответствовал со значением другого ComboBox [WPF] Можно ли передать данные из ListBox или ComboBox в аналогичный ComboBox? Не получается передать список элементов combobox одной формы в combobox другой |
|
Valechka-Думай о Высоком
171 / 290 / 26
Регистрация: 11.08.2022
Сообщений: 3,713
|
|
| 22.05.2023, 15:44 | |
|
Можно работать с представлениями, можно работать напрямую с запросами.
Например, для комбобокса model нужны id и название модели Следующий запрос для type - выбираете id type и название типа с фильтром по id модели Девайс - уже лучше выводить в таблицу. в запросе выводите id для удобства, но в таблицу не выводите. id храните в теге или в столбце ширины 0 или с атрибутах ячеек таблицы. id Нужен для обновления таблицы.
0
|
|
|
0 / 0 / 0
Регистрация: 09.04.2023
Сообщений: 39
|
||||||
| 23.05.2023, 16:22 [ТС] | ||||||
|
В итоге сделал так:
создал класс с полем IDtype и полем type в модели для combobox вытаскиваю из баз эти значения и добавляю type в список для отображения, дальше создаю объект и кидаю в коллекцию. добавляю обработчик события для комбобокса при выделении нового элемента списка и коллекции даюс значение поля IDtype объекта. Вот код
0
|
||||||
|
Valechka-Думай о Высоком
171 / 290 / 26
Регистрация: 11.08.2022
Сообщений: 3,713
|
|||
| 23.05.2023, 16:42 | |||
|
0
|
|||
|
0 / 0 / 0
Регистрация: 09.04.2023
Сообщений: 39
|
|
| 23.05.2023, 17:10 [ТС] | |
|
не совсем понял вас... имеете ввиду что можно было бы обойтись без DataSource? скажем считывать из RS значения полей и добавлять их в созданный объект, а объект в векторный массив, массив в свою очередь в комбо? так?
0
|
|
|
Valechka-Думай о Высоком
171 / 290 / 26
Регистрация: 11.08.2022
Сообщений: 3,713
|
||||||
| 23.05.2023, 17:16 | ||||||
|
Извините, возможно неясно выразился.
Нужен или DataSource или добавлять ComboBoxItem по одному элементу. Пример - со stackoverflow.com
0
|
||||||
|
0 / 0 / 0
Регистрация: 09.04.2023
Сообщений: 39
|
|
| 23.05.2023, 19:46 [ТС] | |
|
Да... именно это я и искал... попробовал ваш вариант, работает!!!! СПАСИБО!!!
0
|
|
| 23.05.2023, 19:46 | |
|
Помогаю со студенческими работами здесь
7
Combobox в окне с другим фоном. Как убрать белые углы combobox? Как при выборе значения в combobox изменить значение другого combobox Содержимое второго ComboBox-а должно зависеть от выбранного элемента в первом ComboBox-е Исключение из ComboBox'а значений выбранных в других ComboBox'ов используя Binding Значение ComboBox из таблицы MS SQL, отфильтрованной значением другого ComboBox Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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 и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|