mysql - 将选中的列表框插入数据库

标签 mysql sql vb.net checkedlistbox

在使用 Visual Studio 的 Visual Basic 项目中,我有 6 个复选框,每个复选框都有超过 10 个值。 我想将复选框的值插入到一张表中,将复选框的所有值插入到一个单元格中(如果可能)。

例如,我有一个名为 Food 的表,其中包含用户 ID、Fruits、Vegetables 和 Snacks。 假设我也有 3 个复选框,我希望在 Fruit 列中选中所有 Fruits,因为它代表一个人。

我的代码是这样开始的:

sql = "INSERT INTO Food (id, Fruits, Vegetables, Snacks) VALUES ('" & txtIDR.Text & "','" & CheckedFruits.CheckedItems.ToString & "','" & CheckedVegetables.CheckedItems.ToString & "','" & CheckedSnacks.CheckedItems.ToString & "','" & ")"

我没有收到错误消息,但我担心我处理选中列表框的方式出了问题。

请指教。

最佳答案

编辑:抱歉没有看到它是 CheckListBox

要访问 CheckListBox 的属性,您应该使用:

CheckedListBox1.CheckedItems.Item(0)

其中 0 是您的项目索引

但是,您需要记住,如果您尝试调用 CheckedListBox1.CheckedItems.Item(0) 但没有检查任何内容,则仅当检查了某些内容时 CheckedItems.Item 才会存在你会发现 Index 超出范围

轻松获取所有检查值的一种简单方法是使用 For Each:

For Each check In CheckedListBox1.CheckedItems
    Debug.WriteLine(check)
Next

你可以有这样的东西:

Public Function CreateSQL() As SqlCommand
    Dim Fruits As String = ""
    Dim Vegetables As String = ""
    Dim Snacks As String = ""
    For Each check In CheckedFruits.CheckedItems
        Fruits = Fruits & check & ","
    Next
    If Fruits.LastIndexOf(",") = Fruits.Length - 1 Then
        Fruits = Fruits.Remove(Fruits.LastIndexOf(","), 1)
    End If
    For Each check In CheckedVegetables.CheckedItems
        Vegetables = Vegetables & check & ","
    Next
    If Vegetables.LastIndexOf(",") = Vegetables.Length - 1 Then
        Vegetables = Vegetables.Remove(Vegetables.LastIndexOf(","), 1)
    End If
    For Each check In CheckedSnacks.CheckedItems
        Snacks = Snacks & check & ","
    Next
    If Snacks.LastIndexOf(",") = Snacks.Length - 1 Then
        Snacks = Snacks.Remove(Snacks.LastIndexOf(","), 1)
    End If
    MyCommand = New SqlCommand("INSERT INTO Food (id, Fruits, Vegetables, Snacks) VALUES (@UserID, @Fruits, @Vegetables, @Snacks)", dbConn)
    MyCommand.Parameters.AddWithValue("@UserID", TicBoxText.Text)
    MyCommand.Parameters.AddWithValue("@Fruits", Fruits)
    MyCommand.Parameters.AddWithValue("@Vegetables", Vegetables)
    MyCommand.Parameters.AddWithValue("@Snacks", Snacks)
    Return MyCommand
End Sub

CheckedListBox MSDN

关于mysql - 将选中的列表框插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44112475/

相关文章:

vb.net - 在多个解决方案中使用同一个文件

c# - 下载需要使用 vb.net/c# 进行身份验证的文件?

php - 重新启动 While 循环

mysql - 从表中获取所有行并按条件连接另一个表中的一些行

mysql - heroku rake 数据库 :migrate ERROR "gem install activerecord-mysql-adapter"

sql - 如何使用具有 OR 子句的 COALESCE 创建动态 WHERE

mysql - 如何将数据插入 Tempdb 直到满足不同值的数量

vb.net - WCF - BasicHttpBinding,没有可用的用户名和/或密码,名称 : null, 密码:空

mysql - SQL 查询组随机播放

PHP 这段代码有什么问题?