簡體   English   中英

在SQL Server中將復選框的值存儲為0或1

[英]Storing value of check boxes as 0 or 1 in SQL Server

我有四個這樣的復選框,

<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?

真的很簡單。 您需要做的就是為數據庫中的每個選項創建一個bit字段。 我看不到任何其他合乎邏輯的方法。

從您的復選框返回的true或false值在C#中稱為布爾值。 布爾值在數據庫中存儲為“ 1”和“ 0”。

編輯

如果您打算擴展這些選項,那么我將根據以下內容提出一些建議。 您可以創建一個包含所有選項的表,並為它們設置代碼。 然后創建一個鏈接表,其中將包含該人及其所需的選項。 如果用戶選擇多個選項,則它們將被多次放入表中(每個選項一次)。

您可以嘗試以下操作:表“ checkboxlist”具有字段ID,用於保存復選框列表項的說明。 然后讓您的表中的用戶選擇了哪些項目:表“ Checkboxanswers”的字段“ checkboxitemId”是“ checkboxlist”的id字段的外鍵,然后添加另一個位字段以指示是否已選擇。

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
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM