Я использую вот такой метод погрузки данных в comboBox
AgeGroup.DataSource = children.newTable("SELECT * FROM agegroup");
AgeGroup.ValueMember = "ID";
AgeGroup.DisplayMember = "agegroup";
где, children
экземпляр класса Table - это мой класс для работы с таблицей
newTable
- метод этого класса, который получает таблицу по запросу
Таблица называется Agegroup
и имеет 2 поля: ID INT
и Agegroup VARCHAR
Это так же справедливо для ComboBoxColumn
Но нам нужна еще целая таблица и что бы значение ComboBoxColumn
тоже менялось соответственно
Подключаем таблицу:
dtChildren.DataSource = children.newTable("SELECT agegroup.agegroup,
childrens.SecondName, childrens.FistName, childrens.FatherName " +
"FROM childrens " +
"INNER JOIN agegroup ON childrens.IDAgeGroup = agegroup.ID " +
"WHERE childrens.IDGroup = '" + dtAttendance.CurrentRow.Cells[1].Value + "'");
Все работает таблица есть, но comboBox
не подставляет значение, нужно установить DataPropertyName
для ComboBoxColumn
Заметьте, что первое поле которое мы получаем это - agegroup
, это поле мы будем использовать в DataPropertyName
, чтобы значение ComboBox менялось в зависимости от записи
Подключаю DataPropertyName
И все на этом начинается ошибка
При попытке получить таблицу, мы получаем исключение от DataGridView
:
System.FormatException: недопустимое значение DataGridViewComboCell
Все действия происходят в одном методе
Я искал и находил похожие ошибки, но они не подходили для работы с БД
Решение проблемы было простым
AgeGroup.ValueMember
и DataPropertyName
должны быть одного типа
Я сам указал на проблему в вопросе, при получении таблицы я получал колонку с типом VARCHAR
, а ValueMember
, являлся int
Я изменил запрос и получаю теперь заместо agegroup.agegroup
это agegroup.IDAgeGroup
, который является int
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть примерно такой простой код:
Написал приложение, которое мониторит папку, если файл есть, то копирует его в другую папку, но с нужным именемЭто в кратце
Как можно проверить,является ли определенный символ в строке числом? Не смог найти никакой рабочей информации, Parse не работает
Класс - это ссылочный тип, а если в нем есть значимые переменные, то под них память выделяется в куче, как под ссылочный (поправьте, если ошибаюсь)