【问题标题】:Datagridview Filtering Error / Vb.net SqlDatagridview 过滤错误/Vb.net Sql
【发布时间】:2014-05-10 07:02:30
【问题描述】:

我的问题是我无法通过列表框中的多选项目过滤 datagridview。

我可以通过多个文本框、组合框和一个项目选择列表框过滤 datagridview。但是,我无法使用列表框多项选择进行过滤。有什么想法可以解决这个问题吗?

我们将不胜感激。

【问题讨论】:

  • sql 标签?说明如何?
  • @Raging Bull MYBindingSource.Filter = _ St​​ring.Format("mycolumn Like '%" & ListBox1.Text & "%' AND mycolumn2 Like '%" & ComboBox1.Text & "%'")我的代码是这样的。我使用 sql server -mdf。
  • 将代码放在问题中,而不是在评论中。我有预感出了什么问题,但没有代码我无法确定。还要添加一些周围的代码,而不仅仅是那一行。

标签: sql vb.net datagridview listbox multipleselection


【解决方案1】:

我会继续根据您的评论发表我的预感:

ListBox.Text 将为您提供第一个选定的 item.ToString()。这意味着当您选择两个对象时,它仍然只向您显示第一个。您需要做的是遍历不同的 ListBoxItems 并分别将它们一一添加。所以你要找的是这样的:

Dim Result As String = String.Format("mycolumn2 Like '%{0}%' AND (", ComboBox1.Text)
For i As Integer = 0 To ListBox1.SelectedItems.Count - 1
    Result &= String.Format(" mycolumn Like '%{0}%'", ListBox1.SelectedItems(i).ToString)
    If i <> ListBox1.SelectedItems.Count - 1 Then
        Result &= " OR "
    Else
        Result &= ")"
    End If
Next

我不确定括号是否会起作用,但我希望它会起作用。这将创建一个过滤器,要求 mycolumn2 匹配文本框(如前所述),然后要求 mycolumn 匹配任何选定的 ListBox1.Items。

【讨论】:

    猜你喜欢
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    相关资源
    最近更新 更多