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
相关产品推荐
相关产品推荐

