Было бы лучше, если вы разместите фрагмент кода, который вы используете, рядом с оператором 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, если поместите '[' и ']' поверх имен столбцов.