我有一个Razor代码:
"SELECT * FROM Cat ORDER BY [NameCat] ASC OFFSET @0 ROWS FETCH NEXT @1 ROWS ONLY";
但它不起作用。
错误是:
为TOP的计数参数行提供的行数 或FETCH子句必须是整数。
FETCH
是一个整数!
@0
和@1
是整数。
我哪里错了?
完整代码:
@{
try
{
Thread.Sleep(200);
var recCount = db.QueryValue("SELECT COUNT(*) FROM Cat");
var db = Database.Open(App.connDatabase);
var strQuery = "SELECT * FROM Cat ORDER BY [NameCat] ASC OFFSET @0 ROWS FETCH NEXT @1 ROWS ONLY";"
var cat = db.Query(strQuery, Request["jtStartIndex"], Request["jtPageSize"]).ToList();
var json = Json.Encode(new { Result = "OK", Records = cat, TotalRecordCount = recCount });
Response.Write(json);
}
catch (Exception ex)
{
var json = Json.Encode(new { Result = "ERROR", Message = ex.Message });
Response.Write(json);
}
}
jtStartIndex
和jtPageSize
是int!
答案 0 :(得分:0)
您的参数Request["jtStartIndex"]
和Request["jtPageSize"]
需要解析为int
才能将其作为integer
传递。当您在不解析的情况下使用它们时,它们将作为strings
传递。试试这样:
var cat = db.Query(strQuery, int.Parse(Request["jtStartIndex"]), int.Parse(Request["jtPageSize"]).ToList();