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**

C#用2列填充组合框

根据您发布的代码,您没有使用数据绑定,而是在循环中手动添加它们。

您应该看看使用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类