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

DataGridView与WHERE LIKE查询配合失效问题求助

问题解决:TableAdapter模糊查询LIKE规则失效

问题根源

你当前的SQL写法WHERE (name LIKE '%' + @Param1 + '%')在TableAdapter中无法正常工作,是因为参数化查询的机制导致通配符和参数的拼接没有被正确解析。当通过代码传递参数时,@Param1会被当作完整的字符串值处理,最终让LIKE变成了精确匹配逻辑。

两种可行解决方案

方案1:在代码中传递带通配符的参数

先修改SQL查询语句,去掉语句内的通配符拼接:

SELECT id, name, [desc], price
FROM tableInventory
WHERE name LIKE @Param1

然后在VB代码调用时,给输入文本手动加上通配符:

InventoryTableAdapter.SearchInventory(InventoryDataSet.inventoryTable, "%" & txtSearch.Text & "%")

这种方式让参数本身包含完整的模糊匹配规则,TableAdapter执行时会正确识别LIKE的模糊逻辑。

方案2:在SQL语句中用CONCAT函数拼接通配符

如果不想修改代码的传参逻辑,可以修改SQL语句,使用SQL Server的CONCAT函数来拼接通配符和参数:

SELECT id, name, [desc], price
FROM tableInventory
WHERE name LIKE CONCAT('%', @Param1, '%')

如果要兼容空参数场景(比如用户未输入搜索内容时匹配所有数据),可以加上ISNULL处理空值:

SELECT id, name, [desc], price
FROM tableInventory
WHERE name LIKE CONCAT('%', ISNULL(@Param1, ''), '%')

这样即使@Param1为NULL,也会拼接成%%,实现全量数据匹配。

验证效果

修改后,不管是用Preview Data测试,还是通过代码调用SearchInventory方法,都能正常触发模糊搜索,不再局限于精确匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 17:03:10