如何将CheckBoxList Checked Item插入数据库

时间:2016-02-01 07:13:12

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

我有一个复选框列表,我想将其Checked项插入数据库; 我用了这段代码:

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

在CheckBox字段中而不是Selected项目。根据输入的所有其他字段都有正确的数据... 我无法找到任何错误,请指导我......

3 个答案:

答案 0 :(得分:1)

使用错误的toString方法。使用checkBox_service.Items[i].SelectedValuecheckBox_service.Items[i].SelectedItem.TextcheckBox_service.Items[i].SelectedItem.Value

答案 1 :(得分:0)

创建一个表,你有一个布尔值。并将值true或false存储在数据库中。 如果选中则为true,未选中则为false

答案 2 :(得分:0)

使用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"