问题描述
我正在开发一个应用程序,但遇到了困难。 目前我正在使用此代码
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
在应用程序中打开一个普通的组合框,但我想向 datagridview 添加一列以成为类似的东西
项目在visual basic中
解决方法
就像您所做的那样,除了使用 datagridviewcombobox。将 DataMember 属性设置为主表的列名,如果您计划使用组合来更新网格中显示的主表
想象一下一个Person 数据表的情况,它的GenderId 列是一个int。还有一个性别表,其中包含 N 个 id:name 对,如 1:male,2:female 等。
personDt = new DataTable
personAdapter.Fill(personDt)
genderDt = new DataTable
genderAdapter.Fill(genderDt)
那么设置将是:
数据网格视图
- 数据源 = personDt
DataGridViewComboBox
- 数据源 = 性别数据
- DisplayMember = "name" 'e.g. “男”、“女”
- ValueMember = "id" '例如1、2
- DataMember = "GenderId" 'personDt 中应链接到的列的名称
ComboBox 变成 2 种方式:当它在人性别中找到 1
时,它会查找并显示“男性”。当用户将项目更改为“女性”时,它会在性别 Dt.Id 列中关联 2 并将其存储到 personDt.GenderId