C# C.NET中的CheckedListBox重新填充问题

C# C.NET中的CheckedListBox重新填充问题,c#,windows,C#,Windows,我已经填充了一个CheckedListBox,它将数据源与Display成员和Vlaue成员绑定在一起。 我已将checkedValues的值保存在数据库中的关系表中。 我需要重新填充checkedListbox,以获取之前已选中保存的值。我已经完成了第一步。但是在第二步中,我无法通过比较关系表来获取项目的索引以保持对它们的检查 按照我的代码绑定CheckedListBox: private void FillCheckedListBox (CheckedListBox chkListBox,

我已经填充了一个CheckedListBox,它将数据源与Display成员和Vlaue成员绑定在一起。 我已将checkedValues的值保存在数据库中的关系表中。 我需要重新填充checkedListbox,以获取之前已选中保存的值。我已经完成了第一步。但是在第二步中,我无法通过比较关系表来获取项目的索引以保持对它们的检查

按照我的代码绑定CheckedListBox:

private void FillCheckedListBox (CheckedListBox chkListBox, string sSql, string displayMember, string valueMember)
        {
            try {
                SqlConnection con = new SqlConnection(DaoCodeGCommon.GetConstring());
                con.Open();
                DataTable accTable = new DataTable();
                SqlCommand cmd = new SqlCommand(sSql, con);
                SqlDataAdapter adpObj = new SqlDataAdapter(cmd);
                accTable.TableName = "tbl";
                adpObj.Fill(accTable);
                con.Close();
                chkListBox.DataSource = accTable;
                chkListBox.ValueMember = valueMember;
                chkListBox.DisplayMember = displayMember;
            }
            catch (Exception ex) {

                throw ex;
            }
        }

有没有办法重新填充checkedListBox?

如果您在数据库中有状态,并且正在从数据库中提取数据,则可以轻松地重新加载复选框列表

例如,假设您加载带有某种读取器的复选框列表:

chkUsers.DataSource = reader;
chkUsers.DataTextField = "YourTextFieldToView";
chkUsers.DataValueField = "YourValueFieldToHide";
chkUsers.DataBind();
现在您已经加载了复选框,现在需要打开/关闭复选框

for(int i =0; i< chkUsers.Items.Count-1; i++)
 {
  if(dbVal == chkUsers.Items(i).Value)
   {
    chkUsers.Items(i).Selected = dbVal;
   }
  }

在这种情况下,dbVal可能是读卡器、数据集或数据表等中的某个值。

我请求通过电子邮件将解决方案发送给jajaboor@gmail.com提前谢谢。我-为什么如果这个问题发生在这个论坛上的其他人身上,他们不知道如何解决这个问题,因为有人给你发了一个解决方案?不要通过电子邮件告诉别人你需要解决方案。如果有解决方案,应该贴在这里。@Farazi:我留下@john的评论作为我编辑的解释。