Vb.net 如何将复选框列表中的所有选定项存储到数据库的单个列中

Vb.net 如何将复选框列表中的所有选定项存储到数据库的单个列中,vb.net,Vb.net,我的目标是将checkbooxlist中的所有选中项输入到数据库中的单个列中。 我知道这不是一个好的设计。然而,这是要求 以下是我用于从checkboxlist中获取所有选定项的代码: Dim listitems As String listitems = ControlChars.CrLf For i = 0 To (chkActivities.Items.Count - 1) If chkActivities.GetItemChec

我的目标是将checkbooxlist中的所有选中项输入到数据库中的单个列中。 我知道这不是一个好的设计。然而,这是要求

以下是我用于从checkboxlist中获取所有选定项的代码:

 Dim listitems As String
 listitems = ControlChars.CrLf
            For i = 0 To (chkActivities.Items.Count - 1)
                If chkActivities.GetItemChecked(i) = True Then
                    listitems = listitems & (i + 1).ToString & chkActivities.Items(i).ToString & ControlChars.CrLf
                End If
            Next
以下是为填充我的表而执行的连接字符串和命令:

>

然而,当我执行这段代码时,它会因为一个错误而崩溃。错误如下:

“s”附近的语法不正确。 字符串“')”后的未闭合引号

由于“listitems”,出现此错误。
任何帮助都将不胜感激。

这不是如何构建列表项的问题,而是如何将值传递给数据库的问题

不要使用字符串连接来生成sql命令

objCon.Open()
objCmd = New SqlCommand("insert into activity_by_customer " & _ 
    "(userID, city, personal_activities, BookingDate, price) " & _ 
    "values (@usrID, @city, @itms, @dt, @price)", objCon)
objCmd.Parameters.AddWithValue("@usrID",frmLogin.userID)
objCmd.Parameters.AddWithValue("@city",cbbCity.Text)
objCmd.Parameters.AddWithValue("@itms", listitems)
objCmd.Parameters.AddWithValue("@dt",Date.Today)
objCmd.Parameters.AddWithValue("@price", lblpriceValue.Text)
objCmd.ExecuteNonQuery()
....

通过这种方式,框架代码在设置值格式时考虑了字符的存在,如单引号,并避免了由此产生的语法错误。此外,通过这种方式您可以避免

谢谢您的回复,您提供的答案是正确的,并且有效。请允许我问一下,您是否可以纯粹出于学术目的提供此解决方案的任何相关链接。
objCon.Open()
objCmd = New SqlCommand("insert into activity_by_customer " & _ 
    "(userID, city, personal_activities, BookingDate, price) " & _ 
    "values (@usrID, @city, @itms, @dt, @price)", objCon)
objCmd.Parameters.AddWithValue("@usrID",frmLogin.userID)
objCmd.Parameters.AddWithValue("@city",cbbCity.Text)
objCmd.Parameters.AddWithValue("@itms", listitems)
objCmd.Parameters.AddWithValue("@dt",Date.Today)
objCmd.Parameters.AddWithValue("@price", lblpriceValue.Text)
objCmd.ExecuteNonQuery()
....