DataGridView中的DataGridViewComboBoxColumn

时间:2013-01-16 01:35:49

标签: mysql vb.net visual-studio-2012

我正在编写一个小应用程序来查看和编辑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。还有一种方法可以将选择列替换为原始列吗?

感谢。

1 个答案:

答案 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