1

我有 2 个表,product_items 和类别。和2个组合框。我想在选定的类别之后过滤另一个组合框。对不起,我的英语不好 :),我尝试了 9 小时,但没有得到解决方案:/ 我的代码我写了多少。

DataSet ds = new DataSet();
            SqlDataAdapter da = new SqlDataAdapter("select itemid, itemname, pcatid from produkti_items_tab", TestConnection);
            da.Fill(ds, "FillDropDown");

            comboBox1.DataSource = ds.Tables["FillDropDown"].DefaultView;
            comboBox1.DisplayMember = "itemname";
            comboBox1.ValueMember = "itemid";

            //============================================
            DataSet ddd = new DataSet();
            SqlDataAdapter dada = new SqlDataAdapter("select pcatid, pcatname from produkti_cat_tab", TestConnection);
            dada.Fill(ddd, "FillDropDownzzz");

            comboBox2.DataSource = ddd.Tables["FillDropDownzzz"].DefaultView;
            comboBox2.DisplayMember = "pcatname";
            comboBox2.ValueMember = "pcatid";

但我不知道我应该在这里写什么:

    private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
    //how filter :/
}
4

1 回答 1

1

不确定,需要对此进行测试,但是绑定到第一个组合框的 DataView 具有 RowFilter 属性。
将此属性设置为适当的条件应删除不属于当前所选类别的项目

if(comboBox2.SelectedValue != null)
{
    DataView dv = comboBox1.DataSource as DataView;
    dv.RowFilter = "pcatid = " + comboBox2.SelectedValue.ToString();
}
于 2013-03-21T12:47:32.607 回答