首页 > 解决方案 > 如何在搜索文本框中选择具有特定值/行的数据?

问题描述

这是我的桌子:

职工号 用户 物品
108 杰夫
109 键盘
110 杰夫 监视器

这是我在搜索文本框中的代码:

Dim query As string = "Select [EmployeeNo], [User], [Item] 
Where [EmployeeNo] Like '%" & txtSearchbox.Text & "%' Or 
[User] Like '%" & txtSearchbox.Text & "%' Or [Item] Like '%" 
& txtSearchbox.Text & "%'
Using con as oledbconnection = new oledbconnection("datasourceofdatabase")
    Using cmd as oledbcommand = new oledbcommand(query1, con)
        Using da as oledbdataadapter = new oledbdataadapter(cmd)
        da.SelectCommand = cmd
         Using dt1 as new datatable() 
            da.Fill(dt1)
            If dt1.Rows.Count > 0 Then
                Datagridview1.Datasource = dt1
            Else
                MsgBox("No Data Found", vbError) 
            End If
          End Using
        End Using
    End Using
End Using

注意:这是带有文本框的实时搜索数据,这意味着它将在我的 datagridview 中实时过滤。

现在,当我在文本框上搜索时,我只想选择 Jeff 的所有数据。

我会使用什么命令?我应该在我的 txtSearchBox 中的查询之后添加这个吗?

标签: vb.netselectoledbcommand

解决方案


假设您正在使用_dataTable1来获取您的表格,并且您的过滤器名称是Filter1

您可以执行以下操作:

Private Sub txtSearchbox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSearchbox.TextChanged

Dim Filter1 As String
Filter1 = "EmployeeNo LIKE '%" & txtSearchbox.Text & "%' OR " & _
          "User LIKE '%" & txtSearchbox.Text & "%' OR " & _
          "Item LIKE '%" & txtSearchbox.Text & "%'"

    ' Sort bonus ;)
    Dim Sort1 As String = " User  ASC"

    _dataTable1.DefaultView.RowFilter = Filter1
    _dataTable1.DefaultView.Sort = Sort1    

    'Bind your DataGridView1 to your _dataTable1
    DataGridView1.DataSource = _dataTable1
End Sub

编辑:

假设您之前声明了您的_dataTable1公共并且已经使用您的查询加载了里面的数据

Public _dataTable1 As New DataTable()

Public Sub New()

' Do you query here
Dim query As string = "Select [EmployeeNo], [User], [Item] "
Using con as oledbconnection = new oledbconnection("datasourceofdatabase")
....
....
If dt1.Rows.Count > 0 Then
                _dataTable1 = dt1
....
....
End Sub

我建议您看一下以下内容: VB.NET DataGridView 绑定 - Sql Server 有一个简单的示例,运行良好且易于理解。不仅适用于 DataGridView,而且适用于所有 VB.net。


推荐阅读