Visual Studio报表多项选择筛选查询

Jim Luo 0 信誉分
2024-04-24T03:16:21.3333333+00:00

Visual Studio报表使用ListBox控件进行多个参数选择查询,但始终只能输出一个参数结果而不是多个参数结果。

VB代码如下:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    For Each selectedItem As Object In ListBox1.SelectedItems

        MessageBox.Show(selectedItem.ToString()) ' 显示每个选中的项 

    Next

    'TODO:  这行代码将数据加载到表“DataSet1.DataTable1”中。您可以根据需要移动或删除它。

    Me.DataTable1TableAdapter.Fill(Me.DataSet1.DataTable1, Me.ListBox1.SelectedItem.ToString)

    Me.ReportViewer1.RefreshReport()
DataSet如下:

SELECT  

[CR05001] AS [代号]

,SC03002 AS [类型]

,[CR05002] AS [库存]

,CR03002 AS [结构]

,[CR05003] AS [日期]

FROM [TESTDB].[dbo].[CR05]

LEFT JOIN [TESTDB].[dbo].[SC03] ON CR05001 = SC03001

LEFT JOIN [TESTDB].[dbo].[CR03] ON CR05002 = CR03001

WHERE SC03002 IN (@类型)

例子:选择2个参数但最后只能查询一个参数结果。

End Sub无标题


谢谢!
VB
VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
76 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Jiachen Li-MSFT 32,961 信誉分 Microsoft 供应商
    2024-04-24T06:13:07.78+00:00

    你传参数的时候使用了Me.ListBox1.SelectedItem.ToString ,所以只使用了一个选中项进行查询。

    在循环中构建一个包含所有选定项的字符串,并将它作为参数传递给查询。

        Dim selectedItems As New List(Of String)
    
        For Each selectedItem As Object In ListBox1.SelectedItems
            selectedItems.Add(selectedItem.ToString())
        Next
    
        ' 构建参数字符串
            Dim parameterString As String = String.Join(",", selectedItems)
    
        ' TODO: 将参数字符串传递给查询
        Me.DataTable1TableAdapter.Fill(Me.DataSet1.DataTable1, parameterString)
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知。


你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。