1

我正在编写一个小应用程序来查看和编辑 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)  

这是我的桌子:

阿博内蒂

abonents_id PK
vards
uzvards
tel_num
adrese_id FK

地址

adrese_id PK
dziv_num
iela

当我从组合框中选择某些内容时,它只会返回表中的值。所以我不能把它换成其他的。

有人知道如何解决这个问题,或者如何使组合框在数据网格视图中使用外键?

PS还有一种方法可以放置该选择列而不是原始列吗?

谢谢。

4

1 回答 1

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
于 2013-01-16T07:54:39.530 回答