我正在使用经典的asp遇到一个奇怪的事情。我继承了一个用连接到Microsoft Access数据库的经典asp编写的应用程序。我正在编辑Adobe Dreamweaver中的代码。在我试图查询的表中,它包含2个字段:ID和用户名。 asp页面上的字段包括月份,年份和用户名。如果我查询ID字段,则查询显示正确,并且用户名字段按ID显示。但是,如果我尝试按用户名排序查询,则无法正常显示。相反,它根本不显示用户名。
当我想按ID订购时,经典的asp代码如下工作:
rstDATA.open "SELECT username FROM [c-names] order by ID", cnn, adLockReadOnly
当我想订购时,经典的asp代码如下工作 用户名不起作用:
rstDATA.open "SELECT username FROM [c-names] order by username", cnn, adLockReadOnly
奇怪的是,如果我在Microsoft Access中运行SQL查询,它可以工作:
SELECT [c-names].[username] FROM [c-names] ORDER BY [c-names].[username];
我尝试将代码粘贴到经典的asp页面中,但它也没有用。
有谁知道它为什么不起作用?非常感谢任何帮助。
答案 0 :(得分:1)
这不是"奇怪的部分",它应该是这样的。
如果您使用保留字作为字段名称,则必须在brasket' []'中使用字段名称。
https://support.microsoft.com/en-us/kb/826763
替代方法
要解决此问题,请勿使用特殊字符。 如果必须在查询表达式中使用特殊字符,请将其括起来 括号中的特殊字符([])。例如,如果要使用 大于号(>),请使用[>]。