ASP.NET сортировка для jQuery Grid - PullRequest
0 голосов
/ 30 июля 2010

Я хочу сделать сортировку для jQGrid в ASP.NET.Для этого я передал sidx и sord для имени столбца и порядка сортировки. Но он выдавал ошибку «Неверный синтаксис около« 0 ». Не удалось подготовить оператор (ы)».я написал запрос для этого select Image,CategoryName,Status,CategoryId from Category Order by {0} {1}

Ответы [ 2 ]

0 голосов
/ 30 июля 2010

Было бы лучше, если вы разместите фрагмент кода, который вы используете, рядом с оператором SELECT. Похоже, что вы либо забыли сделать String.Format с помощью «select Image, CategoryName, Status, CategoryId из упорядочения категорий по {0} {1}», либо вы не определили столбец сортировки по умолчанию в jqGrid и не тестировали в своем коде sidx пусто или null.

Если вы генерируете операторы AdHoc SQL, вы должны быть очень осторожны при тестировании входных параметров sidx и sord. Например, должно быть разрешено только два значения для sord: "desc" или "asc". sidx может быть либо пустым, либо нулевым, либо одно значение из списка разрешенных для сортировки столбцов (Image, вероятно, должно быть запрещено для сортировки). В расширенной версии вы можете позволить sidx быть похожим на "CategoryName asc, Status", если хотите. В этом случае вам следует проанализировать sidx и проверить допустимый синтаксис.

В конце вы должны принять во внимание разрешенный случай имен столбцов и возможное существование специальных символов в именах столбцов или использование зарезервированных имен в именах столбцов. Вы получите гораздо более безопасные операторы SQL, если поместите '[' и ']' поверх имен столбцов.

0 голосов
/ 30 июля 2010

Я не думаю, что это правильный запрос Sql:

"выберите изображение, имя категории, статус, идентификатор категории из категории по порядку {0} {1}"

Вместо этого замените фигурные скобки и цифры фактическими именами:

"выберите изображение, имя категории, статус, идентификатор категории из категории, упорядочить по имени категории, статусу"

Dick

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...