如何在一个文本框中搜索多个值并在 DataGridView vb.net 中显示

2024-05-06

有没有一种方法可以在一个文本框中搜索/过滤多个值?我正在 OPIS 列中搜索两个或多个不同的单词、短语。

Example:搜索 sveder,然后搜索 din 374,然后搜索 TiN,结果将是具有此描述的所有项目

我有这段代码,但是当搜索与描述不完全相同时就会出现问题。数据库是从Access导入的。

    Public Class Form1
    Private Sub PodatkiBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs)
        Me.Validate()
        Me.PodatkiBindingSource.EndEdit()
        Me.TableAdapterManager.UpdateAll(Me.PodatkiDataSet)

    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: This line of code loads data into the 'PodatkiDataSet.Podatki' table. You can move, or remove it, as needed.
        Me.PodatkiTableAdapter.Fill(Me.PodatkiDataSet.Podatki)

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        PodatkiBindingSource.Filter = "(Convert(KODA, 'System.String') LIKE '" & TextBox1.Text & "%')" &
                     "OR (OPIS LIKE '%" & TextBox1.Text & "%')"

    End Sub
End Class

就在这里。例如:

  • 在搜索中TextBox, 用逗号等分隔符分隔搜索词,分割字符串并创建它们的数组。
  • 将目标列放入另一个数组中。
  • 使用嵌套循环来形成过滤器StringBuilder object.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If TextBox1.Text.Trim().Length = 0 Then
        PodatkiBindingSource.Filter = Nothing
    Else
        Dim sb = New System.Text.StringBuilder()
        Dim cols = {"KODA", "OPIS"}
        Dim words = TextBox1.Text.Split({","}, StringSplitOptions.RemoveEmptyEntries).
            Where(Function(x) x.Trim().Length > 0)

        For i = 0 To cols.Count - 1
            For j = 0 To words.Count - 1
                sb.Append($"{cols(i).Trim()} LIKE '%{words(j).Trim()}%'")
                If j <> words.Count - 1 Then sb.Append(" OR ")
            Next
            If i <> cols.Count - 1 Then sb.Append(" OR ")
        Next
        PodatkiBindingSource.Filter = sb.ToString()
    End If
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在一个文本框中搜索多个值并在 DataGridView vb.net 中显示 的相关文章

  • .Net 2 迭代器的巧妙使用[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 C 2 和 VB Net 8 引入了一项新功能 称为迭代器 http msdn microsoft com en us library dscy
  • 按下 Tab 键时 PictureBox 抛出“参数无效”ArgumentException

    我有一个表单 用户可以首先扫描到位图 扫描完成并加载位图后 我将启用 4 个文本框 每个文本框旁边都有一个名为 从图像剪切 的按钮 当用户单击该按钮时 他们可以在位图中单击并拖动以使用 MODI 获取选定的文本 除了一个恼人的错误之外 这一
  • WPF DataGrid 绑定到 string.Length 而不是字符串文本

    我是 WPF 的新手 并且真诚地尝试自己尽可能多地弄清楚 我已经创建了第一个 DataGrid 控件 并且尝试使用如下字符串列表填充它
  • VB.NET 中字节数组的数组

    我需要一个数组 数组中的每个项目都是这样的字节数组 但我不知道如何执行以下操作 Dim xx as array xx 0 as byte H12 HFF xx 1 as byte H45 HFE 您可以像这样创建嵌套或 锯齿状 字节数组 D
  • 比较两个字符串ArrayList

    我有两个数组列表 dim Colors1 New ArrayList Colors1 Add Blue Colors1 Add Red Colors1 Add Yellow Colors1 Add Green Colors1 Add Pur
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • 从 VB.Net 中的 app.config 获取动态更新的连接字符串

    我在 app config 中有一个连接字符串 如下所示
  • vb.net中如何读取串口数据?

    我创建了一个类 有一个名为 SendUSSD 的子类 当调用它时 它会向连接 gsm 手机的 COM 端口发送一个 ussd 代码 如 123 此 usd 应该返回移动余额 If IsOpen True Then checks if the
  • 使用名称变量访问多个表单控件

    我正在尝试迭代一组 ComboBox 并使用连接的字符串和变量来设置属性来表示控件的名称 但是 我无法让表单实例将 String Integer Variable 识别为其控件之一 因此它无法将任何适当的属性或子例程识别为 System W
  • Nothing = String.Empty (为什么它们相等?)

    为什么第一个 if 语句的计算结果为 true 我知道如果我使用 is 而不是 那么它的计算结果不会为 true 如果我将 String Empty 替换为 Foo 它的计算结果不会为 true String Empty 和 Foo 都具有
  • 设置外部应用程序焦点

    在 VB NET 中 您可以使用以下命令将焦点设置到外部应用程序 AppActivate Windows Name or AppActivate processID As Integer 现在 如果您这样做 则效果很好 Dim intNot
  • 全球化自定义数字格式 - 可变小数点

    我正在尝试更改公司应用程序中现有的数字格式 以使其对国际用户更具可读性 这是一个股票交易应用程序 因此大多数股票价格的数字精确到小数点后 2 位 例如 gt 17 23 我们还可以得到精确到小数点后 4 位的价格变动 因此细价股票可能是 0
  • MouseHover 事件中的鼠标坐标?

    我知道如何检索鼠标坐标PictureBox Click虽然事件e In a PictureBox MouseHover e不返回此类信息 如何获取鼠标坐标MouseHover事件 有办法吗 提前致谢 Control MouseHover h
  • 适用于 VB6 程序员的 Option Strict On 和 .NET

    我正在准备一门关于 Visual Basic 2005 的课程 目标对象是迁移到 NET 平台的 Visual Basic 6 程序员 我想听听关于是否建议他们始终启用的建议选项严格 or not 我只使用 C 风格的编程语言 主要是 Ja
  • VB.NET“Like”运算符中可能存在错误?

    为什么下面的评价为True Dim result b Like a b Thanks EDIT 为了概括这一点 以下返回True String1 Like AnyText1 AnyText2 AnyText String1 VBA 工作正常
  • 将本地 HTML 文件/代码导入 Web 浏览器

    我正在尝试让本地 HTML 文件显示在WebBrowser在 VB NET 程序中 我正在使用下面的代码 但它似乎不起作用 我不明白为什么 first method WebBrowser1 Navigate index html secon
  • 在本地安全存储用于 Web 服务的密码

    我有一个应用程序 通过发送用户名和密码来对第三方 Web 服务进行身份验证 目前 我每次启动应用程序时都会在 winform 上输入密码 但我需要它自动登录 我想比更安全地存储用户名 密码 Dim username as String us
  • 动态版本控制

    我有一种情况 我希望版本控制在构建时是动态的 版本图案
  • SELECT 语句会受到 SQL 注入攻击吗?

    实际上有2个问题 我知道我必须尽可能多地使用存储过程 但我想知道以下内容 A 我可以从 SELECT 语句 例如 Select from MyTable 获得 SQL 注入攻击吗 B 另外 当我在 ASP NET 中使用 SQLDataSo
  • 如何在vb.net中对datagridview的3列进行排序

    下面我想对 ProductCode ColorCode 和 Size 列进行排序 请指导 对 大小 列中的信息进行排序 Size Number sequence XS 1 S 2 M 3 L 4 XL 5 XXL 6 2L 7 3L 8 4

随机推荐