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();
}
}
答案 0 :(得分:1)
绝对没有理由定义SelectedItem
或SelectedIndex
。
SelectedIndexChanged 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,看看是否有任何结果。