Dapper查询返回错误

时间:2015-01-11 16:18:01

标签: asp.net-web-api2 dapper

我正在使用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'.

我该如何解决这个问题?感谢。

2 个答案:

答案 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的表示方式。第二个是一个精巧的特殊功能,可以将整数值(仅限于:它不适用于字符串)直接注入查询。如果值通常相同,则第二个通常会表现得更好。当然,第二个你也需要一个不同的正则表达式。