как сделать поле со списком в datagridview с помощью команды mysql?

avatar
Samuel David Messias
1 июля 2021 в 17:41
40
1
-2

Я разрабатываю приложение и застрял на этом пути. В настоящее время я использую этот код

adapter.SelectCommand = New MySqlCommand("SELECT id,description from xconfigwarehouses", connection)

table = New DataTable
adapter.Fill(table)
cmb_destino.DataSource = table
cmb_destino.DisplayMember = "description"
cmb_destino.ValueMember = "id"
cmb_destino.SelectedIndex = -1

, чтобы открыть обычное поле со списком в приложении, но я хотел добавить столбец в представление данных, чтобы оно стало чем-то похожим combobox example

проект в Visual Basic

Источник
JayV
1 июля 2021 в 20:27
0

Взгляните на эту статью MSDN: Класс DataGridViewComboBoxColumn

jmcilhinney
2 июля 2021 в 01:30
0

Я рекомендую вам прочитать это. Это практическое руководство по этому вопросу, которое я написал несколько лет назад.

Ответы (1)

avatar
Caius Jard
1 июля 2021 в 21:02
0

То же, что и вы, только с выпадающим списком datagridview. Задайте для свойства DataPropertyName имя столбца основной таблицы, если вы планируете использовать комбинацию для обновления этой основной таблицы, отображаемой в сетке

.

Представьте себе ситуацию с таблицей данных Person со столбцом GenderId, который является целым числом. Также таблица Gender с N парами id:name, такими как 1: мужчина, 2: женщина и т. д.

personDt = new DataTable
personAdapter.Fill(personDt)

genderDt = new DataTable
genderAdapter.Fill(genderDt)

Тогда установка будет такой:

DataGridView

  • Источник данных = personDt

DataGridViewComboBox

  • Источник данных = полеDt
  • DisplayMember = "имя" 'например. "мужской", "женский"
  • ValueMember = "id" 'например. 1, 2
  • DataPropertyName = "GenderId" 'имя столбца в personDt, который должен ссылаться на

ComboBox становится двусторонним: когда он находит 1 в поле человека, он ищет его и показывает "мужской". Когда пользователь изменяет элемент на «женский», он получает ассоциированное значение 2 в столбце гендерного Dt.Id и сохраняет его в personDt.GenderId

.
Samuel David Messias
2 июля 2021 в 10:19
0

привет, большое спасибо за указания, которые вы даете, у меня все еще есть 1 критическая ошибка. Значение типа «DataTable» не может быть преобразовано в «DataGridViewComboBoxColumn», может быть, вы можете мне помочь? , Спасибо заранее

Caius Jard
2 июля 2021 в 11:40
0

где-то вы написали myDataGridViewComboBoxColumn = myDataTable вместо (вероятно) myDataGridViewComboBoxColumn .DataSource = myDataTable