如何将复选框列表选中的项目插入数据库
本文关键字:项目 插入 数据库 复选框 列表 | 更新日期: 2023-09-27 18:32:51
我有一个复选框列表,我想将其选中的项目插入数据库;我使用了以下代码:
for (int i = 0; i < checkBox_service.Items.Count; i++)
{
if (checkBox_service.Items[i].Selected == true)
{
strcheck += "" + checkBox_service.Items[i].ToString() + ",";
}
}
在数据库中,它正在显示
System.Web.UI.WebControls.CheckBoxList
在复选框字段中,而不是"所选项目"。所有其他字段都有输入的正确数据...我找不到任何错误,请指导我...
使用错误的 toString 方法。要么使用 checkBox_service.Items[i].SelectedValue
要么使用 checkBox_service.Items[i].SelectedItem.Text
或checkBox_service.Items[i].SelectedItem.Value
创建一个表,其中有一个布尔值。 并将值 true 或 false 存储在数据库中。如果为 true,则表示已选中,而 false 表示未选中
使用 LINQ,您可以轻松获取选定项的所有值,然后将所有选定项联接到一个字符串中:
var selectedValues = from i in checkBox_service.Items.Cast<ListItem>()
where i.Selected
select i.Value;
var strcheck = String.Join(",", selectedValues);
请记住 - 这将适用于简单的值(例如字符串)。如果将复选框列表绑定到某些复杂对象,则值将是定义为 DataValueFiled
的属性。例如,使用此数据绑定
checkBox_service.DataSource = new[] {
new Fruit { Id = 1, Name = "Apple" },
new Fruit { Id = 2, Name = "Banana" },
new Fruit { Id = 3, Name = "Peach" }
};
checkBox_service.DataTextField = "Name";
checkBox_service.DataValueField = "Id";
checkBox_service.DataBind();
如果选择第一项和第三项,则结果字符串将"1,3"
。如果需要获取串联文本,请选择Text
属性而不是Value
,结果将"Apple,Peach"
。