0

このように4つのチェックボックスがあり、

<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
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 に答える
0

それは本当にとても簡単です。必要なことは、データベース内の各オプションのビット フィールドを作成することだけです。それを行う他の論理的な方法は見当たりません。

チェックボックスから返される true または false の値は、C# では bool と呼ばれます。ブール値は、true を 1 に、false を上位 0 に変換するビットとしてデータベースに格納されます。

編集

オプションを拡張することを計画している場合は、次の行に沿ったものをお勧めします. すべてのオプションを含むテーブルを作成し、それらのコードを設定できます。次に、その人物とその人物が望むオプションを含むリンク テーブルを作成します。ユーザーが複数のオプションを選択した場合、それらはテーブルに複数回 (オプションごとに 1 回) 配置されます。

于 2012-07-28T20:23:58.330 に答える
0

これを試すことができます:チェックボックスリスト項目を保持するためのフィールドID、説明を含むテーブル「checkboxlist」。次に、ユーザーが選択した項目を含むテーブルを作成します。「checkboxlist」の id フィールドへの外部キーであるフィールド「checkboxitemId」を持つテーブル「Checkboxanswers」を作成し、別のビット フィールドを追加して、選択されたかどうかを示します。 .

于 2012-07-28T20:29:21.917 に答える