如何在 C# 中根据数据库值检查复选框

How to check checkbox based on database values in C#

我创建了复选框列表和按钮来使用 C# 在 ASP.Net 应用程序中存储选中的值,如下所示,

 <asp:CheckBoxList ID="CheckBoxList1" runat="server" Width="120px">
         </asp:CheckBoxList>
<asp:Button ID="AddCheckedData" Height="25px" runat="server" Text="Add Checked Data"  
                                                onclick="AddCheckedData_Click"/>

我在后面的代码中绑定了 CheckBoxList,

public void bindchecklist()
    {
        B.SFS_CODE = Convert.ToInt32(TxtHQCode.Text);
        B.id = 7; //tblparent AND tblchild
        ds8 = A.DATA8(B);
        CheckBoxList1.DataSource = ds8.Tables[0];
        CheckBoxList1.DataTextField = "EMP_NAME";
        CheckBoxList1.DataValueField = "EMP_CODE";
        CheckBoxList1.DataBind();
    }

和按钮单击事件将选定的值存储在数据库中,如下所示,

string selemployee = string.Empty;
foreach (ListItem item in CheckBoxList1.Items)
{
if (item.Selected)
{
selemployee = item.Value;
B.id = 8;//insert into DCR_CHECKED
B.Emp_Code = selemployee;
ds8 = A.DATA8(B);
}
}

现在,我有另一个按钮来编辑 CheckBoxList Selection.Now,我想从数据库中检索数据并检查数据库中可用的复选框(单击保存按钮时在数据库中插入复选框值)时单击编辑按钮。

请尝试:

for each (DataRow row in resultTable.Rows)
{
    if (Convert.ToBoolean(row["bit_column_name"]))
    {
         // check box is "1" (checked) in the database
         .....
    }
}
foreach (DataTable table in ds8.Tables)
                {

                    foreach (DataRow dr in table.Rows)
                    {
                        String S = Convert.ToString(dr["EMP_CODE"].ToString());
                        foreach (ListItem item in CheckBoxList2.Items)
                        {
                            if (S == item.Value)
                            {
                                item.Selected = true;
                            }
                        }
                    }
                }