我正在使用一个select语句,它将两个列EmployerID和Name组合在一起:
SELECT EmployerID + '-' + Name AS CompanyName FROM Employer
将被放入数据库的下拉列表中。 我没有选择和填充数据库的问题,但是,我需要使用EmployerID作为Employee实体的外键,通过使用
选择属于所述雇主的相应员工。string x =ddlEmployer.SelectedValue.ToString();
SqlCommand EmployeeCmd = new SqlCommand("SELECT EmployeeNo + ' - ' + Name As EmployeeName From Employee Where EmployerID = @SelectEmployer", conn);
EmployeeCmd.Parameters.AddWithValue("@SelectEmployer", x);
我无法选择它,因为使用CompanyName组合值执行所选值的select语句不会返回任何内容,只要它等于或如上所示。
所以我的问题是,在选择这两个并在下拉列表中将它们显示为单个选项之后,我如何使用所选值来搜索应该存在的EmployerID?
答案 0 :(得分:2)
首先,更改初始查询以包含EmployerID。
SELECT EmployerID + '-' + Name AS CompanyName, EmployerID FROM Employer
然后将正确的列绑定到DropDownList。您可以有两个不同的列,一个用于TextField,另一个用于ValueField。
DropDownList1.DataSource = source;
DropDownList1.DataTextField = "CompanyName";
DropDownList1.DataValueField = "EmployerID";
DropDownList1.DataBind();
现在,您始终将EmployerID作为SelectedValue。
EmployeeCmd.Parameters.AddWithValue("@SelectEmployer", DropDownList1.SelectedValue);
答案 1 :(得分:0)
我已经设法通过hendryanw的评论来解决这个问题,只需使用
string x = ddlEmployer.SelectedValue.ToString().Split('-)[0];
有助于拆分它并选择我想要的索引,这两种方式都有效。