连接CheckboxList值和Insert Into表

时间:2014-07-13 02:47:31

标签: c# asp.net sql-server checkboxlist

由于我对ASP.Net的了解有限,我遇到了以下问题,我有四个复选框,我想将复选框的值插入表中。值应为:如果选中第一个复选框,则为plan1;如果选择了plan1和plan2,则为plan1plan2;如果选择了plan1,plan2,plan3,则为plan1plan2plan3,等等。

这是我的asp.net代码:

<asp:CheckBoxList ID="CheckBoxList1" runat="server" RepeatColumns="3" RepeatDirection="Horizontal" Width="870px" Height="139px">
    <asp:ListItem Text="Plan1" Value="1" />
    <asp:ListItem Text="Plan2" Value="2" />
    <asp:ListItem Text="Plan3" Value="3" />
    <asp:ListItem Text="Plan4" Value="4" />
</asp:CheckBoxList>

这是我的C#代码:

const string query = "INSERT INTO deductiblePlan (planName) VALUES (@planName)";

using (var command = new SqlCommand(query, conn))
{
    foreach (var item in CheckBoxList1.Items.Cast<ListItem>().Where(item => item.Selected))
    {
        command.Parameters.Clear();
        command.Parameters.AddWithValue("@planName", item.Text);
        command.ExecuteNonQuery();
    }
}

上面的方法是单独插入每个选定的值,例如,如果我选择两个计划,它将插入两个不是我想要的记录,我想要一个带有plan1plan2的记录。

1 个答案:

答案 0 :(得分:2)

我只是在foreach中将它们连接在一起,然后插入一个。

const string query = "INSERT INTO deductiblePlan (planName) VALUES (@planName)";

using (var command = new SqlCommand(query, conn))
{
    string planName ="";
    foreach (var item in CheckBoxList1.Items.Cast<ListItem>().Where(item => item.Selected))
    {
       planName =planName+item.Text
    }
    command.Parameters.Clear();
    command.Parameters.AddWithValue("@planName",planName );
    command.ExecuteNonQuery();

}