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

Visual Studio中按PID列过滤Access数据库表时int转string的实现问题

解决Access数据库整数类型PID列过滤的方案

你当前代码的核心问题是Filter属性的类型转换语法不符合要求,Access数据源对应的字符串转换函数为CStr(),调整后即可实现将int类型的PID转为字符串完成过滤。

具体修改点

  • 替换原错误的类型转换写法,用CStr(PID)完成整数转字符串的操作
  • 对输入框内容的单引号做转义处理,避免输入包含单引号时触发语法错误
  • 删掉冗余的With空代码块,直接赋值DataGridView的数据源即可

修改后的完整代码

con.ConnectionString = dbProvider & dbSource
con.Open()

If PIDfindTextBox.Text = "" Then
    MessageBox.Show("请输入患者ID编号")
Else
    ' 转义输入内容中的单引号,避免语法错误
    Dim inputPid As String = PIDfindTextBox.Text.Replace("'", "''")
    ' 使用CStr转换PID为字符串后做模糊匹配,如果是精确匹配可以把Like换成=
    PatienrocordBindingSource.Filter = "CStr(PID) Like '%" & inputPid & "%'"
    If PatienrocordBindingSource.Count <> 0 Then
        dataGridView1.DataSource = PatienrocordBindingSource
    Else
        MessageBox.Show("未查询到对应患者ID")
        PatienrocordBindingSource.Filter = Nothing
    End If
End If
End Sub

如果你不需要模糊匹配,只想精确查找对应ID,可以把过滤条件换成"PID = " & Integer.Parse(inputPid),不需要做类型转换,性能也更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:15:03