C#用2列填充组合框
本文关键字:组合 填充 2列 | 更新日期: 2023-09-27 18:29:57
我目前正在用Access数据库中一列的值填充一个组合框,我希望获得其相应的主键值,以便稍后在程序中使用。
例如:表中的两列,如ID(PK)和标题
使用标题填充组合框,如何获取其相应的ID值?
我唯一的想法是创建并运行另一个查询,以获取其他列值匹配的id,但这似乎是一种效率低下的方法。
从我的理解和阅读来看,这是不容易的,但任何关于我如何克服这一点的建议都将不胜感激!
到目前为止,我使用winforms
private void populateBox()
{
oleDbConnectionDARS.Open();
dr = oleDbCommandTitle.ExecuteReader();
comboBoxTitle.Items.Clear();
while (dr.Read())
{
comboBoxTitle.Items.Add(dr["Title"]);
}
dr.Close();
oleDbConnectionDARS.Close();
}
**SELECT titleID, Title
FROM tbl_Book**
根据您发布的代码,您没有使用数据绑定,而是在循环中手动添加它们。
您应该看看使用DataBinding-绑定Windows窗体组合框的示例
如果您希望继续使用当前方法,则可以使用ComboBoxItem上的Tag属性来存储要使用的数据。
例如:
while (dr.Read())
{
comboBoxTitle.Items.Add(new ComboBoxItem() { Name = dr["Title"], Tag = dr["titleID"]});
}
要在以后访问该值,只需查看Tag属性即可。
您必须设置ComboBox的两个属性。DisplayMember应该是您将向用户显示的显示值。ValueMember应该是数据库中ID的值。
这适用于System.Windows.Forms.ComboBox类