C# 如何将CheckBoxList选中项插入数据库

C# 如何将CheckBoxList选中项插入数据库,c#,asp.net,sql-server-2008,C#,Asp.net,Sql Server 2008,我有一个复选框列表,我想将其选中的项目插入数据库; 我使用了以下代码: for (int i = 0; i < checkBox_service.Items.Count; i++) { if (checkBox_service.Items[i].Selected == true) { strcheck += "" + checkBox_service.Items[i].ToString() +

我有一个复选框列表,我想将其选中的项目插入数据库; 我使用了以下代码:

for (int i = 0; i < checkBox_service.Items.Count; i++)
        {

            if (checkBox_service.Items[i].Selected == true)
            {
                strcheck += "" + checkBox_service.Items[i].ToString() + ",";
            }
        }
在复选框字段中,而不是在所选项目中。根据输入的数据,所有其他字段都具有正确的数据。。。
我找不到任何错误,请指导我…

使用错误的toString方法。使用
checkBox\u service.Items[i]。SelectedValue
checkBox\u service.Items[i]。SelectedItem.Text
checkBox\u 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);

如果选择第一项和第三项,结果字符串将为
“1,3”
。如果您需要连接文本,请选择
text
属性而不是
Value
,结果将是
“Apple,Peach”

当您回答时,请先检查标签。在SQL server中,布尔类型不存在。在新版本中,您可以使用位类型替换布尔类型,但它在最新版本中。他的数据库管理系统是sql-server-2008。它正准备标记已检查或未检查的内容。但他的问题是如何插入选中项,而不是它们的状态。所以它应该是或某个项目的ID或项目的文本。
var selectedValues = from i in checkBox_service.Items.Cast<ListItem>()
                     where i.Selected
                     select i.Value;

var strcheck = String.Join(",", selectedValues);
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();