ComboBox不显示数据

时间:2015-09-17 11:58:30

标签: c# visual-studio combobox userform

ComboBox没有显示数据,我用我的数据库中的数据填充我的组合框:

private void PartDefective(string id)
{
    cmd = new SQLiteCommand("Select * FROM Part_defective where testers = '" + id + "'", DBcon);
    if (DBcon.State == ConnectionState.Closed)
        DBcon.Open();
    myDA = new SQLiteDataAdapter(cmd);
    myDataSet = new DataSet();
    myDA.Fill(myDataSet, "comboBox6");
    this.comboBox6.DataSource = myDataSet.Tables["comboBox6"].DefaultView;
    this.comboBox6.ValueMember = "Part";
    this.comboBox6.DisplayMember = "Part";
    this.comboBox6.SelectedItem = "ID";
    this.comboBox6.SelectedIndex = -1;

    DBcon.Close();
}

并显示我使用的数据库中的数据:

private void comboBox6_SelectedIndexChanged(object sender, EventArgs e)
{
    if (this.comboBox6.SelectedValue == null)
    {
        testerid = "1";
    }
    else
    {
      part = this.comboBox6.SelectedText.ToString();
    }
}

2 个答案:

答案 0 :(得分:1)

绝对没有理由定义SelectedItemSelectedIndexSelectedIndexChanged Event对于显示组合框也是完全多余的。

删除这些行,看看它是否解决了您的问题。

this.comboBox6.SelectedItem = "ID";
this.comboBox6.SelectedIndex = -1;

如果组合框仍然是空的,问题的根源必须是获取数据并填充数据源。

答案 1 :(得分:0)

在这一行放置一个断点:

this.comboBox6.DataSource = myDataSet.Tables["comboBox6"].DefaultView;

然后在watch或quickwatch窗口中查看myDataSet.Tables [" comboBox6"]的值。有行吗?

同时更改您的代码:

string sql = "Select * FROM Part_defective where testers = '" + id + "'";
cmd = new SQLiteCommand(sql, DBcon);

在那里放一个断点,看看sql的值是什么。

针对您的数据库手动运行sql,看看是否有任何结果。