我的头靠在墙上。我的查询看起来像这样。
SELECT FirstName, LastName, Address
FROM Members
WHERE FirstName LIKE 'JOE%'
在查询向导和DataTablePreview数据窗口中完全正常。但是,当我这样做时。
SELECT FirstName, LastName, Address
FROM Members
WHERE FirstName LIKE ?
当我运行fillby方法时,我什么都没得到。如果我将LIKE更改为=。
SELECT FirstName, LastName, Address
FROM Members
WHERE FirstName = ?
一切都很好。我需要让LIKE工作,所以我可以通配符搜索。
我正在使用SQL服务器OLE数据库连接,如果这意味着什么。
更新
使用LIKE运算符根本不起作用。当我换掉=为LIKE。没有任何回报。
答案 0 :(得分:2)
您需要将查询转换为:
WHERE FirstName LIKE '%' + ? + '%'
如果在参数本身中传递%,我认为它会将其解释为字符串值而不是通配符,并且与FirstName ='JOE%'的工作方式相同
答案 1 :(得分:2)
我有这个问题。该查询在查询构建器中工作,然后在表适配器中预览时失败。
我将SQL更改为LIKE LTRIM(RTRIM(@string))
然后我将%
放入我发送的字符串中。表适配器在参数中发送完整的字符串,包括空格,即使输入被修剪。这意味着由于空格
答案 2 :(得分:0)
你能否将%添加到param字段?
发现于
答案 3 :(得分:0)
事实证明,OLEDB连接中的某些东西已被清除。当我创建一个新连接和一个新的表适配器时,一切都开始正常工作。
修改强>
我实际做的是使用SQL服务器适配器而不是SQL服务器OLEDB适配器。
DB