有5个目标和5名员工。每个目标都可以分配给这 5 名员工中的任意数量。因此,我为每个目标设置了 5 个 CheckBoxList,每个 CheckBoxList 都将这 5 名员工的姓名作为项目。
我想从数据库中检索哪些员工被分配了哪些目标。我有以下代码:
List<CheckBoxList> checkboxlists = new List<CheckBoxList>();
checkboxlists.Add(CheckBoxList1);
checkboxlists.Add(CheckBoxList2);
checkboxlists.Add(CheckBoxList3);
checkboxlists.Add(CheckBoxList4);
checkboxlists.Add(CheckBoxList5);
for (int z = 1; z <= checkboxlists.Count; z++)
{
SqlCommand check = new SqlCommand("SELECT ISGoal1, ISGoal2,ISGoal3, ISGoal4,ISGoal5 FROM PRM2011_EMPLOYEE_GOAL WHERE EmployeeID = '" + employeeid[z - 1] + "'", con);
SqlDataReader y = check.ExecuteReader();
y.Read();
for (int j = 1; j <= 5; j++)
{
if (null != y && y.HasRows)
{
string yes_or_no = y["ISGoal" + j].ToString().Trim();
if (yes_or_no == "Yes")
{
checkboxlists[j-1].Items[z-1].Selected = true;
}
//else checkboxlists[j - 1].Items[z - 1].Selected = false;
}
}
y.Close();
}
我的问题是,即使我为员工选择了一个目标,与该特定员工对应的所有复选框都会被选中。为什么会这样?
相应地,如果我在发布的代码中注释掉 else 部分,并且如果没有选择任何目标,则与该员工对应的所有复选框都未选中。请帮忙。