FETCH NEXT出错

时间:2016-07-04 15:31:46

标签: sql-server tsql fetch

我有一个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);
    }
}

jtStartIndexjtPageSize是int!

1 个答案:

答案 0 :(得分:0)

您的参数Request["jtStartIndex"]Request["jtPageSize"]需要解析为int才能将其作为integer传递。当您在不解析的情况下使用它们时,它们将作为strings传递。试试这样:

var cat = db.Query(strQuery, int.Parse(Request["jtStartIndex"]), int.Parse(Request["jtPageSize"]).ToList();