我正在编写一个小应用程序来查看和编辑mySQL表。
我想将ComboBox输入放在DataGridView中,从其他表中的外键中选择数据。
是否有任何方法可以这样做?
到目前为止,我只找到了这段代码:
Dim cmb As New DataGridViewComboBoxColumn()
cmb.HeaderText = "Select Data"
cmb.Name = "cmb"
cmb.DataSource = Form1.table
cmb.DisplayMember = "adrese_id"
cmb.ValueMember = "adrese_id"
cmb.DataPropertyName = "adrese_id"
DataGridView1.Columns.Add(cmb)
Form1.adapter.Update(Form1.table)
这是我的表格:
abonenti
abonents_id PK
vards
uzvards
tel_num
adrese_id FK
adreses
adrese_id PK
dziv_num
iela
当我从comboBox中选择一些内容时,它将返回到表中的值。所以我不能把它改成其他任何一个。
有人知道如何解决这个问题,或者如何让comboBox在数据网格视图中使用外键?
P.S。还有一种方法可以将选择列替换为原始列吗?
感谢。
答案 0 :(得分:1)
这是我在做类似事情时想出的。
将数据插入datagridview后,您将单元格转换为组合框。 所以基本上你像下面的代码一样遍历DGV并改变单元格类型。 您将dgvDropDown项设置为数据库中的项(当然是字符串)。 请记住,如果在下拉列表中找不到项目的值,则会发生错误。
int column = 0
For row As Integer = 0 To DataGridView1.Rows.Count - 1
Dim dgvDropDown As DataGridViewComboBoxCell = New DataGridViewComboBoxCell()
dgvDropDown.Items.Add("dbItem1")
dgvDropDown.Items.Add("dbItem2")
DataGridView1.Item(column, row) = dgvDropDown
Next