如何保存正确的ValueMember的组合框的实体/数据库



如何将ComboBox的正确ValueMember保存到entities/db?我的Winform有从查找数据表的实体中获取值的组合框,如下面的代码所示:

    private void FillComboBoxes()
    {
        chargedToComboBox.Invalidate();
        ModelCS ctx = new ModelCS();
        var query1 = from a in ctx.LuDatas
                     where a.Category == "Charged To" && a.IsActive == true
                     select new { LuValueMember = a.LuValueMember,
                                  LuDisplayMember = a.LuDisplayMember };
        var chargedTo = query1.ToList();
        chargedToComboBox.DataSource = chargedTo;
        chargedToComboBox.DisplayMember = "LuDisplayMember";   
        chargedToComboBox.ValueMember = "LuValueMember";     
        string ch = chargedToComboBox.SelectedValue.ToString();
        MessageBox.Show(ch);      // variable ch shows the CORRECT
                                  // ValueMember
        chargedToTextBox.Text = ch;     // variable ch show the UNDESIRABLE                 
                                        // DisplayMember
        this.Refresh();
    }

上SaveChanges()我得到以下错误:"System.Data.Entity.Validation。DbEntityValidationException'在EntityFramework.dll中发生

为了找出发生了什么,我在表单中添加了一个TextBox,并试图将其存储在我认为是ComboBox.ValueMember的内容中。为此,我存储了ComboBox。并将该变量存储在TextBox.Text中。文本框中显示的内容。Text是Combo的DisplayMember,而不是ValueMember。

为了测试原因,我在代码中添加了一个MessageBox来查看'ch'的值;它显示ValueMember的正确值。

怎么可能在MessageBox中'ch'有一个值,而在TextBox中。文本它有另一个?

我想要的只是从LuData实体中提取一个查找列表,在ComboBox中按名称显示选项,并通过代码将值存储在数据库中。

试试这个:

chargedToTextBox.Text = chargedToComboBox.SelectedItem.ToString();

相关内容

  • 没有找到相关文章

最新更新