2010-07-30 46 views
0

我想为ASP.NET中的jQGrid排序。为此,我通过了sidx和sord以获得列名和排序顺序,但它给出错误“0附近的语法错误。” 声明无法准备。“ 我写查询这个select Image,CategoryName,Status,CategoryId from Category Order by {0} {1}ASP.NET为jQuery Grid排序

回答

0

我不认为这是有效的SQL查询:

“选择图片,类别名称,状态,类别编号由{0} {1}类别订购”

相反与实际名称替换大括号和数字:

“选择图片,类别名称,状态,类别编号从类别排序按类别名称,状态”

迪克

0

如果你发布一个代码片段,你可以使用SELECT声明附近的代码片段。看起来你忘记了String.Format与“选择图像,类别名称,状态,来自类别顺序{0} {1}的类别ID”,或者您没有在jqGrid中定义默认排序列,也不在代码中测试是否sidx是空的或null

如果您生成AdHoc SQL语句,则在测试输入参数sidxsord时应非常小心。例如,对于sord"desc""asc"应该只允许两个值。 sidx可以为空或空值,也可以是允许排序的列表中的一个值(Image可能不允许进行排序)。在高级版本中,如果需要,可以允许sidx"CategoryName asc, Status"。在这种情况下,您应该解析sidx并验证允许的语法。

最后,您应该考虑允许的列名称情况以及列名称中可能存在的特殊字符或使用列名称中的保留名称。如果将'['和']'放在列名上,您会收到更安全的SQL语句。