【发布时间】:2016-09-10 07:09:51
【问题描述】:
我的数据库中有两个表,它们是公司和代表,在我的账单表格中,我有两个组合框,一个用于显示公司,另一个用于显示代表......
现在,当我在第一个组合框中选择公司时,代表的第二个组合框应显示与所选公司相关的代表。 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";
}
【问题讨论】:
-
从这里开始:
where compId=" + PBillCompNamecmbo.ValueMember实际上扩展为where compId=compId,它始终是true,并且不应用任何过滤。您应该绑定一个包含所需compId值的参数。 -
SQL Injection alert - 您应该不将您的 SQL 语句连接在一起 - 使用 参数化查询 来避免 SQL 注入
标签: c# sql-server winforms combobox