2016-07-04 2 views
0

У меня есть код Razor:Ошибка в FETCH NEXT,

"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 являются ИНТ!

+0

Ничего общего с 'бритвой'. Это вопрос 'sql'. Как вы выполняете этот запрос? Вы передаете параметры типа 'int' на сервер? Можете ли вы показать свой код ... – Kaf

+0

'Request []' возвращает 'строки', вам нужно их преобразовать в' int'. – Kaf

+0

Ok Спасибо за ответ Kaf ... но как я могу? –

ответ

0

Ваши параметры Request["jtStartIndex"] и Request["jtPageSize"] должны быть разобраны на int, чтобы передать их в качестве integer. Когда вы используете их без разбора, они передаются как strings. Попробуйте следующее:

var cat = db.Query(strQuery, int.Parse(Request["jtStartIndex"]), int.Parse(Request["jtPageSize"]).ToList(); 
Смежные вопросы