我有1个文本框和1个Combobox。现在我想要做的是,当用户键入文本框,然后当他点击ComboxBox时,组合框应该自动从数据库中填充。以下是我的代码。
public void BindComboBox3(ComboBox comboBox3)
{
SqlDataAdapter da = new SqlDataAdapter("Select batch_id FROM batch where product_id_fk='"+Convert.ToInt32(textBox2.Text)+"'", con);
DataSet ds = new DataSet();
da.Fill(ds, "batch");
comboBox3.ItemsSource = ds.Tables[0].DefaultView;
comboBox3.SelectedValuePath = ds.Tables[0].Columns["batch_id"].ToString();
}
private void comboBox3_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
try
{
BindComboBox3(comboBox3);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show("Enter Product ID " + ex.Message);
}
}
答案 0 :(得分:0)
用户单击并选择其他选项后,应触发组合框的选择更改事件。好像您的组合框内部没有任何内容,用户无法更改自己的首选项。这意味着用户必须进行额外点击才能触发它,否则它就永远不会触发。
您可能会考虑其他触发机制,例如 MouseUp或MouseDown,combox的鼠标悬停。您可以在事件开始时设置断点,以便您可以不时地知道事件是否被触发,同时您可以单独确保从数据库更新的代码确实有效。
或者,您可以触发组合框以更改文本框的文本已更改事件。
希望它有所帮助。