无法清除c#.net windows应用程序

时间:2016-08-05 08:11:03

标签: c# .net visual-studio-2012 sql-server-2012 c#-3.0

我正在使用Windows窗体应用程序。我使用两个comboBox控件,这些控件填充了SQL SERVER表中的数据。

加载表单后,cmbCategory将被填充。

当选择其中一个cmbCategory值时,cmbSubCategory将被填充。

让我这样说吧:

如果cmbCategory.SelectedIndex = 0,则cmbSubCategory显示一些特定项目。 如果cmbCategory.SelectedIndex = 1,则cmbSubCategory显示其他一组特定项目。

如果选择了cmbCategory中的某个项目,然后将选择更改为另一个项目 - 在同一个控件中,则应删除cmbSubCategory中的所有项目。为了得到这个,我使用语句“cmbSUbCategory.Items.Clear();”。但是,它不会发生。 cmbSubCategory中的项目永远不会消失。如果我在cmbCategoryComboBox1中交替选择不同的项目,cmbSubCategory中的项目列表会增长,增长和增长。

这是我的代码 :

 private void cmbCategory_SelectedIndexChanged(object sender, EventArgs e)
    {

        cmbSubCategory.Items.Clear();
        DataSet ds = new DataSet();
        ds =category.CategoryData();
        for (int i = 0; i < ds.Tables["Temp_CategoryTable"].Rows.Count; i++)
        {
            if (ds.Tables["Temp_CategoryTable"].Rows[i][1].ToString() == cmbCategory.SelectedItem.ToString())
            {
                txtCatID.Text = ds.Tables["Temp_CategoryTable"].Rows[i][0].ToString();
            }

        }

        products.categoryID = int.Parse(txtCatID.Text);

        DataSet ds1 = new DataSet();
        ds1 = subcat.subCategoryData(products);

            for (int j = 0; j < ds1.Tables["Temp_SubCatTable"].Rows.Count; j++)
            {
                var val = ds1.Tables["Temp_SubCatTable"].Rows[j][1].ToString();
                if (!cmbSubCategory.Items.Contains(val))
                {
                    cmbSubCategory.Items.Add(ds1.Tables["Temp_SubCatTable"].Rows[j][1].ToString());
                }

            }     

    }

我不明白为什么这句话

cmbSubCategory.Items.Clear();

没有像我期望的那样工作。或者它可能只是因为我觉得它不起作用。

我真的很感激任何帮助。

提前致谢。

subCategoryData()定义如下

public DataSet subCategoryData(ProductClass product)
 {
            string str = "SELECT * FROM prod_subcategory_table WHERE categoryID="+product.categoryID+"";
            ds = dbcon.subCategoryDataDB(str,product);
            return ds;
}

和subCategoryDataDB(str,product)定义如下:

  public DataSet subCategoryDataDB(string sqlQuery,ProductClass pd)
    {
        da.SelectCommand = new SqlCommand(sqlQuery, con);
        da.Fill(ds, "Temp_SubCatTable");
        return ds;
    }

0 个答案:

没有答案