C# Windows 窗体:从填充了实体框架的组合框值成员中检索值



我有一个ComboBox,我从实体框架模型中填充它。

ComboBox.DataSource = (from x in _context.myTable
                                         where x.isActive == true
                                         select new {
                                                        x.Name,
                                                        x.ID
                                                    }
                                         ).Distinct().ToList();
ComboBox.DisplayMember = "Name";
ComboBox.ValueMember = "ID";
ComboBox.SelectedIndex = -1;
ComboBox.Invalidate();

问题是:每次 Combox 选择更改时,我都想检索 myTable (SQL Server 表( 的 ID(PK 标识号(列后面的信息,但 ComboBox.SelectedValue 返回了错误的标识号。实际上,它返回索引 + 1。

private void ComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    Console.WriteLine("ComboBox.SelectedValue=" + ComboBox.SelectedValue);        
}

你能指教吗?

我也遇到了同样的问题,我找到了一个非常简单的解决方案。绑定组合框可能存在问题,如果可以尝试使用此代码来绑定组合框。

using (DatabaseEntities db_entity = new DatabaseEntities())
        {
            comboBox1.DataSource = db_entity.TableName.ToList();
            comboBox1.ValueMember = "ID";
            comboBox1.DisplayMember = "Name";
        }

您可以检索 ValueMember(在您的情况下为"ID"(。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboBox1.SelectedIndex > 0)
        {
            int _id = Convert.ToInt32(comboBox1.SelectedValue);
        }
    }

相关内容

  • 没有找到相关文章

最新更新