mysql - DataGridView 中的 DataGridViewComboBoxColumn

标签 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)  

这是我的表格:

不值得

abonents_id PK
瓦尔兹
乌兹瓦尔兹
电话号码
adrese_id FK

地址

adrese_id PK
dziv_num
即拉

当我从组合框中选择某些内容时,它只会返回表中的值。所以我无法将其更改为任何其他内容。

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

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

谢谢。

最佳答案

这是我在做类似事情时想到的。

将数据插入数据 GridView 后,您将单元格转换为组合框。 所以基本上你像下面的代码一样循环遍历 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

关于mysql - DataGridView 中的 DataGridViewComboBoxColumn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14350101/

相关文章:

mysql - 用于存储类银行账户和交易的数据库结构

php - 异步聊天

c# - 在 Windows 窗体 C# 上查找组件(不是控件)

c# - 无法将 <null> 分配给隐式类型的局部变量

php - 用 PHP 填充 HTML 表格

mysql - 搜索并返回不同的行及其重复次数

c# - 检测远程桌面连接

c# switch 语句比 vb.net 'case' 更受限制

vb.net - VB.NET 中的 TryCast 将字符串转换为整数

visual-studio-2012 - 在Server Explorer (LocalDB) VS2012中查看数据