C# SQL前缀搜索中参数值的设置

C# SQL前缀搜索中参数值的设置,c#,sql,C#,Sql,我正在ASP.NET应用程序中执行SQL前缀搜索。为此,我编写了一个存储过程,其中我编写了以下查询: SELECT Description, ProductDescriptionID FROM Production.ProductDescription WHERE CONTAINS (Description, ' "top*" ' ); 在我的过程中,参数为@pvchProductName。如何用上述查询中的参数值替换顶部单词?我面临单引号和双引号的语法问题 DECLARE @searchTe

我正在ASP.NET应用程序中执行SQL前缀搜索。为此,我编写了一个存储过程,其中我编写了以下查询:

SELECT Description, ProductDescriptionID
FROM Production.ProductDescription
WHERE CONTAINS (Description, ' "top*" ' );
在我的过程中,参数为@pvchProductName。如何用上述查询中的参数值替换顶部单词?我面临单引号和双引号的语法问题

DECLARE @searchTerm nvarchar(60) = N' "' + @pvchProductName + N'*" ';
// where the "60" above should be adjusted to account for the length
// of pvchProductName, plus 5. So if pvchProductName is [n]varchar(30),
// then nvarchar(35) would be fine.

SELECT Description, ProductDescriptionID
FROM Production.ProductDescription
WHERE CONTAINS (Description, @searchTerm);
?

然而,不清楚您希望在过滤条件中包含多少引号/星号/空格-您可能需要检查一下

?


但是,不清楚您希望在筛选条件中包含多少引号/星号/空格-您可能需要检查一下。

我已经尝试过了,但它显示错误为:“+”附近的语法不正确。还有一些类似的东西:@pvchProductName*。但我需要这样:“@pvchProductName*”我想要:“@pvchProductName*”,根据MSDN示例。我的要求是用参数名替换实际单词。但每次编辑我都会遇到语法错误。@WajidAli你真的是指参数名吗?还是说参数的值?我发布的代码应该完全满足您的需要。如果不是,请使用一些示例描述值和一个无法按预期工作的@pvchProductName进行演示。另外,请注意,CONTAINS与搜索不同:如果@pvchProductName是abc,则说明中的任何位置都需要包含文本“abc*”,包括开头和结尾的空格以及星号,但不包括单引号。因为这就是您最初的顶级示例所做的。我希望该参数在该位置的值意味着不希望硬编码任何单词。@WajidAli,事实上,我展示的代码没有硬编码任何单词;如果符合问题中的要求:问题中top出现的位置,则使用@pvchProductName的值。如果@pvchProductName的值为top,则查询是相同的。我尝试过这个方法,但它显示的错误是:“+”附近的语法不正确。还有一些类似的东西:@pvchProductName*。但我需要这样:“@pvchProductName*”我想要:“@pvchProductName*”,根据MSDN示例。我的要求是用参数名替换实际单词。但每次编辑我都会遇到语法错误。@WajidAli你真的是指参数名吗?还是说参数的值?我发布的代码应该完全满足您的需要。如果不是,请使用一些示例描述值和一个无法按预期工作的@pvchProductName进行演示。另外,请注意,CONTAINS与搜索不同:如果@pvchProductName是abc,则说明中的任何位置都需要包含文本“abc*”,包括开头和结尾的空格以及星号,但不包括单引号。因为这就是您最初的顶级示例所做的。我希望该参数在该位置的值意味着不希望硬编码任何单词。@WajidAli,事实上,我展示的代码没有硬编码任何单词;如果符合问题中的要求:问题中top出现的位置,则使用@pvchProductName的值。如果@pvchProductName的值为top,则查询是相同的。@agent007:我已经发布了与问题相关的代码.Wajid。c在这里的作用是什么?我认为这纯粹是sql问题。您还应该提到sql server。参数名称还是参数值?@agent007:我已经发布了问题相关代码.Wajid。c在这里的作用是什么?我认为这纯粹是sql问题。您还应该提到sql server。参数名还是参数值?