You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中通过TextBox检索Excel数据并显示于DataGridView的问题

实现TextBox输入筛选Excel数据到DataGridView

我明白你的需求啦——现在你能把Excel里的所有数据都读到DataGridView,但想要实现根据TextBox输入的内容筛选匹配记录对吧?咱们一步步来改代码就行~

问题根源

你当前的代码没有添加筛选条件,执行的是SELECT * FROM [Sheet1$]这类查询,所以会返回全部记录。要实现检索,只需要给SQL语句加上WHERE子句,匹配TextBox的输入值即可。

完整解决方案代码

我给你写了带注释的完整代码,你可以放到按钮的点击事件(或者TextBox的文本变更事件,实现实时筛选)里:

Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
    ' 1. 配置Excel连接字符串
    ' 注意:如果是.xls格式,把Extended Properties改成'Excel 8.0;HDR=YES;'
    Dim connectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='C:\MECH_1.xlsx';Extended Properties='Excel 12.0 Xml;HDR=YES;'"
    
    ' 2. 构建带参数的SQL查询
    ' 把【你的目标列名】替换成你要匹配的Excel列名(比如"零件名称"、"编号")
    ' 如果要匹配多列,可以写成:WHERE 列1 LIKE @SearchText OR 列2 LIKE @SearchText
    Dim sqlQuery As String = "SELECT * FROM [Sheet1$] WHERE 你的目标列名 LIKE @SearchText"
    
    ' 使用Using语句自动释放资源,避免内存泄漏
    Using myConnection As New OleDb.OleDbConnection(connectionString)
        Using myCommand As New OleDb.OleDbCommand(sqlQuery, myConnection)
            ' 3. 添加查询参数(一定要用参数化查询,避免SQL注入和特殊字符问题)
            ' 前后加%是实现模糊匹配,比如输入"螺丝"会匹配所有包含"螺丝"的记录
            ' 如果要精确匹配,就去掉前后的%,写成 txtSearch.Text 即可
            myCommand.Parameters.AddWithValue("@SearchText", "%" & txtSearch.Text & "%")
            
            Using dataAdapter As New OleDb.OleDbDataAdapter(myCommand)
                Dim dataSet As New DataSet()
                ' 执行查询并填充数据集
                dataAdapter.Fill(dataSet)
                
                ' 4. 将筛选后的结果绑定到DataGridView
                DataGridView1.DataSource = dataSet.Tables(0)
            End Using
        End Using
    End Using
End Sub

关键细节说明

  • 参数化查询:别直接把TextBox的内容拼到SQL里!用@SearchText参数可以避免SQL注入,还能处理输入里的单引号这类特殊字符。
  • 模糊匹配 vs 精确匹配:如果需要精确匹配(比如输入的内容必须和Excel里的记录完全一致),就把参数值改成txtSearch.Text,去掉前后的%。
  • 实时筛选:如果想在用户输入时就自动更新DataGridView,把上面的代码放到txtSearch_TextChanged事件里就行。
  • 驱动兼容性:确保你的电脑安装了Microsoft Access Database Engine(ACE驱动),32位程序要装32位驱动,64位程序装64位驱动,否则会报错。
  • Excel路径与权限:尽量别把Excel文件放到C盘根目录,可能会有权限问题,建议放到用户文档目录下。

内容的提问来源于stack exchange,提问作者Ani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:34:54