由于我对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的记录。
答案 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();
}