根据组合框填充文本框和组合框 - Winforms

时间:2012-01-21 14:21:38

标签: c# winforms data-binding combobox textbox

我的代码有问题。它正确显示了组合框的内容,但只要数据为空,它就不会返回为空。例如。

我的第一个组合框是客户名称,在我点击连接到数据库的组合框中的客户名称之后,它应该将其性别放在组合框中。

*请注意这是一个编辑表单,所以我要做的是更新

如果字段有输入是正确的,但是如果该字段为空则不会更改存储在组合框中的值

例如:

选择客户1 * 在组合框中显示他的性别(例如女性) 选择客户2 * 性别是女性WTF? (鉴于用户忘记了他的性别)

***所以我的问题是,如果该字段为空,我的组合框不会为空,而是保留我之前使用的值的值。

这是我的代码。 ** combobox1是客户名称列表,combobox2是性别列表

private void BindControls() // function to bind the database to the comboBox
        {
           comboBox1.DataSource = _db.Client();
           comboBox1.DisplayMember = "client"; //client names are shown in the combobox
        }


 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
          comboBox2.SelectedItem =    ((DataRowView)comboBox1.SelectedItem).Row["gender"].ToString(); //the value of gender in database is put in the combobox2
        }

@@我的Gender组合框(combobox2)中的项目没有绑定到数据库我只是手动将值放在组合框的项目属性中(这是visual studio中的一个功能)

非常感谢!只要问我是否不清楚,我会添加一些细节。

1 个答案:

答案 0 :(得分:2)

尝试使用以下内容:

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
 {
      String genderString = ((DataRowView)comboBox1.SelectedItem).Row["gender"].ToString();

      if (!String.IsNullOrEmpty(genderString))
      {
           comboBox2.SelectedItem = ((DataRowView)comboBox1.SelectedItem).Row["gender"].ToString(); //the value of gender in database is put in the combobox2
      }
      else
      {
           comboBox2.SelectedIndex = -1;
      }
 }

如果gender是一个空字符串,它只会将组合框设置回未选中状态(我怀疑null值不应该显示为此列的值。)