0

我有四个这样的复选框,

<asp:CheckBoxList ID="CheckBoxList1" runat="server" 
                onselectedindexchanged="CheckBoxList1_SelectedIndexChanged" Width="190px">
                <asp:ListItem>Programming Contests</asp:ListItem>
                <asp:ListItem>Seminars/Workshops</asp:ListItem>
                <asp:ListItem>Social Gatherings</asp:ListItem>
                <asp:ListItem>Tech Support</asp:ListItem>
</asp:CheckBoxList>

我想将这些复选框的值存储为表中的 0 或 1。此外,可能存在用户选择多个复选框的情况,如何处理?我在数据库中使用了“位”数据类型。但是我遇到的困惑是如何将这些复选框的值存储为数据库中的 0 或 1?

4

3 回答 3

0

这真的很简单。您需要做的就是为您的数据库中的每个选项创建一个位字段。我没有看到任何其他合乎逻辑的方法。

从复选框返回的真或假值在 C# 中称为布尔值。布尔值在数据库中存储为将 true 转换为 1 和 false top 0 的位。

编辑

如果您打算扩展选项,我会推荐以下内容。您可以创建一个包含所有选项的表并为其设置代码。然后创建一个链接表,其中将包含人员和他们想要的选项。如果用户选择多个选项,它们将被多次放入表中(每个选项一次)。

于 2012-07-28T20:23:58.330 回答
0

你可以试试这个:表格“checkboxlist”,其中包含字段 Id、描述来保存复选框列表项。然后让您的表格与用户选择的项目:表格“Checkboxanswers”,其中字段“checkboxitemId”是“checkboxlist”的id字段的外键,然后添加另一个位字段以指示它是否被选中.

于 2012-07-28T20:29:21.917 回答
0
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
  List<int> checkList = new List<int>();
  foreach (ListItem item in CheckBoxList1.Items)
  {
     if (item.Selected)
     {
        checkList.Add(1);
     }
     else
     {
        checkList.Add(0);
     }

     //Now you can use this list to pass it to Sql
  }
}
于 2012-07-28T20:37:31.093 回答