Я не мастер SQL, поэтому надеюсь, что это не слишком большая проблема. :) Вот мой SQL:
query = "SELECT id, email, firstName, lastName " +
"FROM [WarehouseUser] " +
"WHERE email LIKE '%' + @Filter + '%' OR FirstName LIKE '%' + @Filter + '%' OR LastName LIKE '%' + @Filter + '%'" +
"ORDER BY " + "DESC" +
"OFFSET @Offset ROWS " +
"FETCH NEXT @Length ROWS ONLY;";
Когда это выполняется, я получаю следующую ошибку:
System.Data.SqlClient.SqlException: «Неверный синтаксис рядом с @Offset». Недопустимое использование параметра NEXT в операторе FETCH.'
Что я делаю не так?
sort
? Напечатайте где-нибудь окончательную строку, отображаемую sql, попробуйте запустить ее напрямую и посмотреть, в чем проблема... Я думаю, должно быть наsort
или на числах смещения, длины (и перед порядком у вас нет пробела. - person Aristos   schedule 25.08.2017+
и"
послеsort
, которые испортились - person Alam   schedule 25.08.2017sort
будет пустым. Из этого я делаю предварительный вывод, чтоsort
пусто. - person Jeroen Mostert   schedule 25.08.2017sort
был пуст, но я все еще получаю ту же ошибку, когда устанавливаю его наASC
илиDESC
. - person Jonathan   schedule 25.08.2017ORDER BY DESC
тоже недопустимо. Вам не хватает столбца дляORDER BY
(ORDER BY WidgetCount DESC
). При построении динамического SQL распечатайте его перед выполнением, а затем используйте SSMS или функцию сервера Visual Studio, чтобы проверить, является ли оператор синтаксически допустимым. Если повезет, вы сразу же получите волнистые линии, говорящие вам, что это не так. (Кроме того, базовые практические знания SQL настоятельно рекомендуются при динамическом объединении операторов — вы должны, по крайней мере, знать, какORDER BY
работает.) - person Jeroen Mostert   schedule 25.08.2017