C# 如何执行参数化SQL查询(使用LIKE和@variable)

C# 如何执行参数化SQL查询(使用LIKE和@variable),c#,sql,sql-server,asp.net-mvc,sql-like,C#,Sql,Sql Server,Asp.net Mvc,Sql Like,我想使用用户输入执行select查询,要使用的LIKE的正确语法是什么,我应该在第一行或第二行设置% var areaName = "SELECT AOIId FROM dbo.AreaOFInterest WHERE AOIName LIKE @AOIName "; db.Database.ExecuteSqlCommand(areaName, @searching); 如果要搜索所有以指定字符开头的名称,请指定如@AOIName+'%'。对于包含字符串的所有名称,请指定类似“%”@AOIN

我想使用用户输入执行select查询,要使用的
LIKE
的正确语法是什么,我应该在第一行或第二行设置
%

var areaName = "SELECT AOIId FROM dbo.AreaOFInterest WHERE AOIName LIKE @AOIName ";
db.Database.ExecuteSqlCommand(areaName, @searching);

如果要搜索所有以指定字符开头的名称,请指定
如@AOIName+'%'
。对于包含字符串的所有名称,请指定类似“%”@AOIName+“%”的

您可能还希望在提供的搜索字符串中像通配符一样转义,以便将其视为文字:

var aoiNameParameterValue = AOIName.Replace("[", "[[]").Replace("%", "[%]").Replace("_", "[_]").Replace("^", "[^]");

谢谢,但你所说的替换是什么意思?我的意思是将搜索字符串中的通配符括在方括号内。我在代码示例中使用了String.Replace方法来实现这一点。这是关于您的编程语言的,您试图在其中调用它,而不是关于sql。我使用的是asp.net mvc#