我的用户表单中有一个组合框,我在其中应用了数据绑定。因此,当加载表单时,它会正确显示表中的值。此外,我还有几个相同形式的文本框,用户将在其中输入值。当用户要单击提交按钮时,我希望将文本框和组合框(显示来自不同表的值)中的值存储到另一个表中。所以本质上我的问题是,我可以使用组合框的数据绑定来显示一个表中的值并使用数据绑定将相同的值写入另一个表中。
假设这两个表之间存在外键关系,即您正在
ComboBox
中显示父表中的值,并且希望将相应的 ID 保存到子表中的外键列中。在这种情况下,您将查询父表以获取要显示的 ID 和值,并将该数据绑定到 ComboBox
,例如
SELECT ParentId, ParentName FROM Parent
然后:
parentBindingSource.DataSource = parentDataTable
With parentComboBox
.DisplayMember = "ParentName"
.ValueMember = "ParentId"
.DataSource = parentBindingSource
End With
用户将看到
ParentName
值列表,当他们做出选择时,您可以从 ParentId
的 SelectedValue
属性获取相应的 ComboBox
并将其与您的 TextBox
数据一起保存。
您还可以绑定子数据并自动推送用户的选择,例如您在另一个
DataTable
中有一个或多个子记录绑定到 BindingSource
。如果子表中的外键列名为“ParentId”,您可以这样做:
parentComboBox.DataBindings.Add("SelectedValue", childBindingSource, "ParentId")
如果您使用数据源,则也可以在设计器中配置该绑定。