文本更改事件未触发

本文关键字:事件 文本 | 更新日期: 2023-09-27 18:02:19

这是我的代码。通过DataSource添加数据后,SelectedIndexChanged事件未触发

try
{
    comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
    comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
    //comboBox1.Items.Clear();
    comboBox1.ResetText();
    Cn.Open();
    SqlCommand Cd = new SqlCommand("Select Distinct Mobile From Client_Details Where Branch = '" + label2.Text + "'", Cn);
    SqlDataReader da = Cd.ExecuteReader();
    DataTable dt = new DataTable();
    dt.Columns.Add("Mobile", typeof(string));
    dt.Load(da);
    comboBox1.DisplayMember = "Mobile";
    comboBox1.DataSource = dt;
    comboBox1.SelectedItem = "<Select>";
}
catch
{
}
finally
{
    Cn.Close();
    Clear();
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    //Label CBSL = new Label();
    //string CBSL = this.comboBox1.SelectedItem.ToString();
    if (comboBox9.Text == "Client")
    {
        Update_Read_Client();
    }
    else if (comboBox9.Text == "Customer")
    {
        Update_Read();
    }
}
  1. 反复选择第一个值。
  2. 我试过dropdownstyle = DropDownList。但它会休眠。没有添加任何值。任何帮助解决我的问题。

文本更改事件未触发

我不确定你是否有"<选择>"保存在数据库中的项。此外,当使用DataTable时,更容易使用SqlDataAdapter填充。你也应该使用参数,而不是字符串concat,当你写你的查询像这样和using关键字关闭你的连接自动当你完成使用它。我可能会这样写:

comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
using (SqlConnection con = new SqlConnection(connectionString))
{
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = @"SELECT DISTINCT Mobile
                        FROM Client_Details
                        WHERE Branch = @Branch";
    cmd.Parameters.AddWithValue("@Branch", label2.Text);
    try
    {
        var dt = new DataTable();
        dt.Columns.Add("Mobile", typeof(string));
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(dt);
        DataRow row = dt.NewRow();
        row["Mobile"] = "<Select>";                    
        dt.Rows.InsertAt(row, 0);
        comboBox1.DisplayMember = "Mobile";
        comboBox1.DataSource = dt;
        comboBox1.SelectedItem = "<Select>";
    }
    catch
    {
        throw;
    }
}