如何在c#中根据项目选择操作另一个组合框

本文关键字:操作 选择 另一个 组合 项目 | 更新日期: 2023-09-27 18:06:37

我的数据库中有两个表,它们是company和delegate,在我的账单表单中有两个组合框,一个用于显示公司,另一个用于显示delegate…

现在,当我在第一个组合框中选择一个公司时,第二个委托组合框应该显示与所选公司相关的委托。Company表的主键为compId, Delegate表的外键为compId

我试着像这样编码,但它没有给我所需的结果,它只是显示所有委托…任何帮助!

public PBillFrm()
{
    InitializeComponent();
    da = new SqlDataAdapter("select compId, compName from company", cn);
    da.Fill(dt);
    PBillCompNamecmbo.DataSource = dt;
    PBillCompNamecmbo.DisplayMember = "compName";
    PBillCompNamecmbo.ValueMember = "compId";
    da2 = new SqlDataAdapter("select delId,delName from delegate where compId=" + PBillCompNamecmbo.ValueMember + "", cn);
    da2.Fill(dt2);
    pBillDelNamecmbo.DataSource = dt2;
    pBillDelNamecmbo.DisplayMember = "delName";
    pBillDelNamecmbo.ValueMember = "delId";                     
}

如何在c#中根据项目选择操作另一个组合框

技巧一:设置PBillCompNamecmbo的AutoPostBack属性为"TRUE"

技巧2:将以下代码移动到PBillCompNamecmbo

OnChangeFunction
da2 = new SqlDataAdapter("select delId,delName from delegate where compId=@Id", cn);
da2.Fill(dt2);
pBillDelNamecmbo.SelectCommand.Parameters.AddWithValue("@Id", Convert.ToInt32(PBillCompNamecmbo.ValueMember));
pBillDelNamecmbo.DataSource = dt2;
pBillDelNamecmbo.DisplayMember = "delName";
pBillDelNamecmbo.ValueMember = "delId";