【发布时间】:2021-03-05 21:59:33
【问题描述】:
我正在尝试读取 SQL 数据库中存在的值列表,如果该值存在,则需要选中复选框列表中的复选框。目前,我可以读取特定员工的值,但是当我尝试遍历复选框列表时,它会完全跳过它。我可以通过完美地检查项目来添加新的数据条目,但它只是导致问题的读取:
我下面的示例代码是为了测试它是否甚至循环通过复选框列表。
var asd = GetEmployeeSpecificDisabilities(idNum, connString); //returns a list of a specific employees disabilities;
string value = string.Empty;
foreach (ListItem item in disabilityList.Items)
{
value += item.Selected ? item.Text + "," : "";
以下代码在添加新员工详细信息时完美运行:
//create new list object
EmployeeList newEmployee = new EmployeeList();
newEmployee.EmployeeNumber = txtEmployeeNumber.Text;
newEmployee.IDNumber = txtIDnumber.Text;
newEmployee.employeeSurname = txtSurname.Text;
newEmployee.employeeName = txtName.Text;
newEmployee.numberOfDependants = Convert.ToInt32(txtNumOfDependants.Text);
newEmployee.Race = lsRaces.SelectedValue;
newEmployee.Gender = lsGender.SelectedValue;
//if employee has a disability
if (disabilityList.Visible == true)
{
foreach (ListItem x in disabilityList.Items)
{
if (x.Selected)
{
newEmployee.Disabilityreference_Id = Convert.ToInt32(x.Value);
newEmployee.CreateNewEmployee(connString, newEmployee);
}
}
}
else
{
newEmployee.CreateNewEmployee(connString, newEmployee);
}
Response.Redirect("Default.aspx");
前端代码:
<asp:CheckBoxList ID="disabilityList" runat="server" style="left: 19px; top: 3px; width: 266px; border:medium; padding:inherit" DataSourceID="Disabilities" DataTextField="DisabilityReference" DataValueField="Id" Visible ="true" CssClass="checkbox checkbox" Font-Size="Medium">
</asp:CheckBoxList>
<asp:SqlDataSource ID="Disabilities" runat="server" ConnectionString="<%$ ConnectionStrings:EmployeeDBConnectionString %>" SelectCommand="SELECT * FROM [Disabilities]"></asp:SqlDataSource>
【问题讨论】:
标签: c# sql asp.net .net foreach