首页 > 解决方案 > 获取选中复选框的所有值并在 SQL 语句中使用

问题描述

我正在寻找选中复选框的文本值并将该文本值用作我的 SQL 语句的参数。到目前为止,我编写的代码获得了第一个检查值,但之后没有其余的。有没有人有任何想法最好的方法来做到这一点?另请注意,我有无限数量的复选框,它们会不断变化,因此寻找不需要我为每个选项编写代码的东西。

下面是我到目前为止的代码示例,如上所述,它只获得了第一个复选框。

For Each item As ListItem In chkBox.Items
If item.Selected = True Then
Using con As New SqlConnection(GblSqlCon)
Using cmd As New SqlCommand("SELECT DISTINCT ID, NAME, ADDRESS, COUNTRY, DOB FROM [db].[dbo].[tbl_TEST] WHERE COUNTRY = @COUNTRY AND DOB = @DOB")

                    cmd.Parameters.AddWithValue("@DOB", txtDOB.Text)
                    cmd.Parameters.AddWithValue("@COUNTRY", chkBox.Text)

                    MsgBox(chkBox.Text)


                    Using sda As New SqlDataAdapter()
                        cmd.Connection = con
                        sda.SelectCommand = cmd
                        Using dt As New DataTable()
                            sda.Fill(dt)
                            
                     End Using
                  End Using
              End Using
End If
Next

标签: sql-servervb.net

解决方案


如果您使用的是checkedBoxList并且一次勾选了多个国家,那么将您的查询更改如下:-

笔记; 将参数 @COUNTRY 设为 csv 字段并使用 IN 运算符。

从 [db].[dbo].[tbl_TEST] WHERE COUNTRY IN (@COUNTRY_CSV_PARAM) 和 DOB = @DOB 中选择不同的 ID、姓名、地址、国家/地区、出生日期


推荐阅读