C# 从C ExecuteReaderAsync调用带有参数和WHERE子句的SQL函数

C# 从C ExecuteReaderAsync调用带有参数和WHERE子句的SQL函数,c#,sql,sql-server,C#,Sql,Sql Server,这里面临这样一个问题:有一个返回SQL函数选择结果的方法,当调用不带WHERE子句的函数时一切正常,但当使用@search调用它时,我在结果中什么都没有得到,但在MsSQL管理器中同样的查询工作得很好 Visual Studio Enterprise 2015、MsSqlServer Express 2016 但当使用WHERE子句生成命令时,它总是空的: 有什么想法吗?你的WHERE部分应该是WHERE JobName,比如@search,并在搜索字符串中添加%: parameters = n

这里面临这样一个问题:有一个返回SQL函数选择结果的方法,当调用不带WHERE子句的函数时一切正常,但当使用@search调用它时,我在结果中什么都没有得到,但在MsSQL管理器中同样的查询工作得很好

Visual Studio Enterprise 2015、MsSqlServer Express 2016

但当使用WHERE子句生成命令时,它总是空的:

有什么想法吗?

你的WHERE部分应该是WHERE JobName,比如@search,并在搜索字符串中添加%:

parameters = new Dictionary<string, object> { { "@ModuleID", moduleId },
         { "@SpecialGroupID", specialGroupId }, { "@search", "%" + search + "%"  } };
您的WHERE部分应为WHERE JobName,如@search,并在搜索字符串中添加%

parameters = new Dictionary<string, object> { { "@ModuleID", moduleId },
         { "@SpecialGroupID", specialGroupId }, { "@search", "%" + search + "%"  } };

GUI.fGetSelectedJobs中的GUI是什么。如果GUI不是架构名称,请尝试使用dbo.fGetSelectedJobs中的SELECT*。如果GUI不是架构名称,请尝试使用dbo.fGetSelectedJobs中的SELECT*。或者仅在查询JobName中使用“%+@search+%”我不确定是否理解,但我不同意@Fabio,这不会在查询中使用参数,只是字符串连接。可能您的意思是“%”+@search++“%”之类的东西我的输入错误,对不起-选择。。。从…起其中JobName(如“%”++@search++“%”)将是另一种方法。或者只是在查询JobName(如“%”++@search++“%)时,我不确定我是否理解,但我不同意@Fabio,它不会在查询中使用参数,只是字符串串联。也许你的意思是“%”++@search++“%”之类的东西。对不起,请选择。。。从…起其中,JobName(如“%”++@search++“%”)将是另一种方法。
parameters = new Dictionary<string, object> { { "@ModuleID", moduleId },
         { "@SpecialGroupID", specialGroupId }, { "@search", "%" + search + "%"  } };