【发布时间】:2014-10-29 18:37:22
【问题描述】:
我有一个带有 C# 代码的 asp.net 表单,在表单上我有一个 CheckBoxList。理想情况下,用户可以使用此 CheckBoxList 选择适用于他们的多个项目,并将所有选择插入到 SQL 数据库中的单个列中,每个选择用逗号分隔。下面是我当前的 CheckBoxList INSERT 代码,但是当我在 SSMS 上查询 SQL 表时,CheckBoxList 列仅显示为“NULL”。
Pyramid 是数据库表的名称。 CheckBoxListFruits 是 CheckBoxList 控件的名称,Favorite Fruits 是我要插入信息的列的名称。
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "INSERT INTO Pyramid set IsSelected = @IsSelected" + " WHERE Favorite Fruits=@Fruits";
foreach (ListItem item in CheckBoxListFruits.Items)
{
cmd.Parameters.AddWithValue("@IsSelected", item.Selected);
cmd.Parameters.AddWithValue("@Fruits", item.Value);
}
}
我的代码有什么问题,我该如何解决?
【问题讨论】:
-
你调试过你的代码吗?你确定你的价值观不是
null吗?您的CommandText中也不需要+。 -
“所有选择都插入到 SQL 数据库中的单个列中,每个选择都用逗号分隔。” 出于对所有事物的爱,请不要这样做。 ..阅读关于标准化!!!!
-
具体来说,请阅读1st Normal Form。您不必记住范式,但认识到它们背后的原则非常重要。
标签: c# sql asp.net sql-server