我在使用 sql server 全文功能时遇到问题。我正在将一些论坛软件转换为使用全文搜索,并且我已完成所有设置并正常工作。我的问题与全文查询有关。我设计了一些查询,当我使用 CONTAINS 谓词在 sql server management studio 中测试它们时,这些查询可以根据需要运行来定位我的搜索结果,例如:
Select ....
From .....
WHERE Contains(p.Message,'" dog food "' ) ......
所以这运行得很好,但是我如何在准备好的语句中对其进行参数化呢?理想情况下,我希望能够使用 where 子句运行查询,例如:
Select ....
From .....
WHERE Contains(p.Message,'" @SearchTerm "' ) ...
or even
WHERE Contains(p.Message,'"@SearchTerm" Near "@OtherSearchTerm" ) ...
但由于双引号等原因,这种方法不起作用。我可以在代码中动态构建搜索词,但出于安全原因,我确实需要对所有用户输入使用参数。我查看了无数的谷歌结果试图找到解决方案,但找不到(当然这必须发生在每个人身上,或者我在这里错过了一些非常明显的东西和/或这是不可能的)。有任何想法吗?
创建带有参数的存储过程,例如:
CREATE PROCEDURE [sp_FullTextSearch]
@SearchTerm nvarchar(500)
AS
BEGIN
Select ....
From .....
WHERE Contains(p.Message, @SearchTerm)
END
然后从您的代码中调用它。
如何:使用 Visual C# .NET 在 ASP.NET 中调用 SQL Server 存储过程
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)