我正在使用Dapper版本1.38.0.0开发MVC Web API。我写这段代码
var param = new Dapper.DynamicParameters();
foreach (Match match in Regex.Matches("Select Top @count * From tblCourse", @"(?<!\w)@\w+"))
{
string key = match.Value;
string value = HttpContext.Current.Request.QueryString[key.Replace("@", null)];
param.Add(key, value);
}
result = con.Query<dynamic>("Select Top @count * From tblCourse", param);
但我在结果行上有错误。
Additional information: Incorrect syntax near '@count'.
我该如何解决这个问题?感谢。
答案 0 :(得分:0)
试试这个
result = con.Query<dynamic>("Select Top (@count) * From tblCourse", param);
Top
的值通过参数
答案 1 :(得分:0)
TOP @param
在SQL Server中不合法。 2个选项:
Select Top (@count) * From tblCourse
或者
Select Top {=count} * From tblCourse
第一种是SQL-server的表示方式。第二个是一个精巧的特殊功能,可以将整数值(仅限于:它不适用于字符串)直接注入查询。如果值通常相同,则第二个通常会表现得更好。当然,第二个你也需要一个不同的正则表达式。