Winforms Combobox 选定值为空

7
我有一个数据录入表格,其中有几个组合框。每个组合框都有自己的绑定源,并且在我启动表格时正确填充。但是,如果我在表格上编辑记录并尝试传递更新后的组合框选择值给数据库,我会收到一个错误,指出我传递的值是NULL。
这个问题似乎每隔一段时间就会发生一次,我无法弄清楚为什么它不能正常工作。基本上,我正在尝试向一个表格中插入新的记录,但由于某种原因它未能获取我的选定值。下面是我的插入数据代码:
Data.Manager.AddEmployee
 (
   InactiveEmployeeSelected.GUID,
   Convert.ToByte(RoleComboBox.SelectedValue),
   NotesTextBox.Text.Trim(),
   ScheduleTextBox.Text.Trim(),
   ExtensionTextBox.Text.Trim(),
   CodeTextBox.Text.Trim(),
   Convert.ToBoolean(EBApprovedCheckbox.CheckState),
   Convert.ToByte(ApprovalLevelComboBox.SelectedValue),        //pulling null
   Convert.ToBoolean(AssignComtracksCheckbox.CheckState),
   Security.Manager.CurrentUser.GUID,
   DateTime.Today,
   Convert.ToBoolean(IsActiveCheckbox.CheckState)
);

非常感谢您的帮助。

3个回答

22

13

你是否在使用DropDown类型的下拉框且输入内容?如果是这样,那么SelectedValue将为null,我猜测是因为输入的值不再是ComboBox中的一个选项。

如果是这种情况,请将DropDownStyle设置为DropDownList,假设用户必须选择现有的值。


2
对我来说(五年后),默认的 DropDownStyleDropDown,而不是 DropDownList。当设置为后者时,用户无法编辑选项,我可以使用 SelectedItem 属性进行获取和设置。 - James Love

12

ComboBox必须具有数据源。通过ComboBox1.DataSource链接数据。


1
实际上这应该是答案。如果您创建一个匿名类型并添加项目,然后使用DisplayMember和ValueMember,selectedItem属性将起作用,但SelectedValue始终为空(在我的情况下)。如果您创建一个新列表,然后使用combobox.Datasource属性,SelectedValue将被正确填充。奇怪! - Rob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接