在数据绑定comboBox中搜索?

伙计我有一个comboBox配置为像dropdownlist一样工作。 它正在通过数据库填充。 它运作完美。

现在我想做的是:例如我有comboBox从数据库表“tblPersons”获取“Names”列并显示它。 if,例如,数据库表“tblPersons”中总共有4个条目

  1. 阿里汗
  2. 艾哈迈德汗
  3. 比拉尔汗
  4. Bilal Farooqi

所以当我在comboBox中写“Ahmed Farooqi”时(comboBox应该是可编辑的,一旦我写了“Ahmed”,它应该显示所有名称为“Ahmed”的条目)并按回车键,它应该在数据库表“tblPersons”中搜索 – 如果“ Ahmed Farooqi“被发现 – 它应该选择它,如果找不到”Ahmed Farooqi“ – 它应该询问我是否要在数据库表”tblPersons“中创建新条目,如果我点击”是“它应该打开另一个表单进行添加新人,如果我点击“否”,它应该什么都不做。

我该怎么做 我是C#的新手,所以任何帮助都将不胜感激。 如果我的问题不清楚,我道歉。

问候。

编辑:这是我的测试表单,这里我是一个用于输入名称的文本框,文本框应该在数据库中搜索名称,然后如果找到名称,则在各自的文本框中显示来自数据库的编号和电子邮件。 如果未找到,则应显示消息框,要求用户创建新人,如果单击是,则切换到另一个表单(用户将创建新人)。

在此处输入图像描述

在表单加载中调用fillCombo函数并将cmb_SelectedValueChanged事件分配给combobox。 不要忘记将autocompletemode属性设置为combobox。

cmb.AutoCompleteMode = AutoCompleteMode.SuggestAppend private void fillCombo() { string sql = "SELECT ID, NAME, Number, Email FROM tblPerson"; SqlConnection Cnn = new SqlConnection("connections string"); Cnn.Open(); SqlDataAdapter da = new SqlDataAdapter(sql, Cnn); DataTable dt = new DataTable(); da.Fill(dt); cmb.ValueMember = "ID"; cmb.DisplayMember = "Name"; cmb.DataSource = dt; } private void cmb_SelectedValueChanged(object sender, EventArgs e) { if (cmb.SelectedItem != null) { txtNumber.Text = ((DataRow)cmb.SelectedItem)["Number"].ToString(); txtEmail.Text = ((DataRow)cmb.SelectedItem)["Email"].ToString(); } } private void cmb_Validating(object sender, CancelEventArgs e) { if (cmb.SelectedItem == null) { If (MessageBox.Show("Do you want to create a new person?", MessageBoxButtons.YesNo) == DialogResult.Yes) { frmNewPerson person = new frmNewPerson(); person.Name = cmb.Text; if (person.ShowDialog() == DialogResult.Yes) { fillCombo(); DataRow dr = ((DataTable)cmb.DataSource).Select("Name='" + person.Name + "'")[0]; cmb.SelectedValue = Convert.ToInt32(dr["ID"]); } } else { txtNumber.Text = string.Emtpy; txtEmail.Text = string.Emtpy; } } }