我有这个问题:
我有两个combobox
通过数据库中具有不同表的数据集填充,第一个具有项目,第二个具有基于第一个中选择的项目 ID 显示的品牌combo box
。
例如,在第一个组合框中选择 ID = 1 的电视,第二个组合框中填充了 ItemId = 1 的品牌,例如三星、LG、分机。
我尝试过使用两个不同的数据集,但我无法关联 WHERE 条件。
我有这个问题:
我有两个combobox
通过数据库中具有不同表的数据集填充,第一个具有项目,第二个具有基于第一个中选择的项目 ID 显示的品牌combo box
。
例如,在第一个组合框中选择 ID = 1 的电视,第二个组合框中填充了 ItemId = 1 的品牌,例如三星、LG、分机。
我尝试过使用两个不同的数据集,但我无法关联 WHERE 条件。
你试过这个
DataRow[] drSelectedRows = YourDataTable.Select("itemid = "+yourvalue);
或者
DataView dv = new DataView(YourDataTable);
dv.RowFilter ="itemid = "+yourvalue;
假设我有以下两个表:
我会像这样填充第一个 ComboBox:
comboBox1.DataSource = db.BRAND.Select(c => c.NAME).ToList();
然后我将实现以下事件处理程序:
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
Dictionary<string, int> d = db.BRAND.ToDictionary(c => c.NAME, c => c.ID);
comboBox2.DataSource = (from c in db.ITEM
where c.BRAND_ID == d[comboBox1.Text]
select c.NAME).ToList();
}
然而,这假设品牌名称是唯一的。