选择索引更改事件时的组合框

时间:2019-06-26 10:35:09

标签: c# vb.net

我对comboxBox有问题。基本上我有两个comboBox,一个用于类别,另一个用于产品。当我从第一个comboBox中选择类别时,它将在第二个comboxBox中显示该类别的产品。当您运行购买表单,然后在购买后关闭它时,一切都很好,但是我有一些设计并且使用用户控件可以使我的应用程序作为一个整体运行,无需关闭表单,只需单击按钮,您可能会转到下一个形成。 现在,实际的问题是,当我选择类别时使用用户控件,然后在comboBox2中显示产品,然后再次选择另一个类别,然后在组合框2中显示第一类产品和第二类产品。 我想知道如何显示仅与类别相关的产品? 我应该使用用户控件吗?因为没有用户控制,它就可以正常工作。

当我选择两个以上的类别时,为什么会给我所有产品名称的原因,因为我使用的是While循环。 有没有办法获得像按关系这样的独特结果。在产品名称表中放入类别ID? 帮帮我

   {
        SqlCommand cmd = sqlcon.CreateCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "Select * from Product_Name Where Category_Name='" + comboBox1.Text + "'";

        DataTable dt = new DataTable();
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        sda.Fill(dt);
        SqlDataReader dr;
        dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            comboBox2.Items.Add(dr["ProductName"].ToString());
        }

        dr.Close();

1 个答案:

答案 0 :(得分:0)

在while循环内的comboBox2中插入数据之前,请使用comboBox2.Items.Clear()清除comboBox2。这应该可以解决您的问题。解决方案是不言自明的,因此我认为不需要写进一步的解释。