如何将复选框列表选中的项目插入数据库

本文关键字:项目 插入 数据库 复选框 列表 | 更新日期: 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.TextcheckBox_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"