Sql Can';t在查询中从文本框进行部分匹配
我有一个列,其中包含类似“Tom Hardy”的数据,我在该列中添加了一个新查询以进行搜索,如下所示:Sql Can';t在查询中从文本框进行部分匹配,sql,ado.net,Sql,Ado.net,我有一个列,其中包含类似“Tom Hardy”的数据,我在该列中添加了一个新查询以进行搜索,如下所示: SELECT Number, Name, Business, [Tax File No], Phone FROM Archive WHERE (Name = @Name) 当我输入像“Tom Hardy”这样的全名时,它就起作用了,但我只想通过搜索“Tom”或“Hardy”来查找结果 我还尝试: SELECT Number, Name, Busines
SELECT Number, Name, Business, [Tax File No], Phone
FROM Archive
WHERE (Name = @Name)
当我输入像“Tom Hardy”这样的全名时,它就起作用了,但我只想通过搜索“Tom”或“Hardy”来查找结果
我还尝试:
SELECT Number, Name, Business, [Tax File No], Phone
FROM Archive
WHERE (Name IN (@Name))
两者都不起作用
使用连接了C#和SQL数据库的Visual Studio 2010
请帮忙,谢谢 您需要在参数中添加通配符
WHERE Name LIKE '%' + @Name + '%'
所以
.Dave是对的,除了mybe您还想检查小写/大写字母, 也许这就是你没有收到好结果的原因 比如:
SELECT Number, Name, Business, [Tax File No], Phone
FROM Archive
WHERE (LOWER(Name) like '%' + LOWER(@Name) + '%')
此语句将两个值都转换为小写,并且比较再次有效感谢您的关注,但它不起作用。仍然无法搜索未满的name@MohammedAhmed再次更新,作为豪尔赫小写建议的替代方案(尽管它可能过于本地化,无法满足您的需要)。如果需要,您还可以将其添加到数据库中+1以获得优雅:)。。我不知道为什么Mohammed总是有问题谢谢@MohammedAhmed您是否有任何错误,或者只有0个结果?您能否在Sql Server Management Studio中而不是在代码中尝试上面的代码,以便我们排除此问题。@Dave在尝试使用上次更新时,它给了我错误“无效排序规则UTF8_GENERAL_CI”@MohammedAhmed-您能否在SSMS(Sql Server Management Studio)中尝试此操作,以便我们排除任何C#/连接/编码问题。
SELECT Number, Name, Business, [Tax File No], Phone
FROM Archive
WHERE (LOWER(Name) like '%' + LOWER(@Name) + '%')