Asp classic 经典asp查询未按连接到Microsoft Access数据库的用户名排序

Asp classic 经典asp查询未按连接到Microsoft Access数据库的用户名排序,asp-classic,Asp Classic,我在使用经典asp时遇到了一个奇怪的事件。我继承了一个用经典asp编写的应用程序,它连接到Microsoft Access数据库。我正在Adobe Dreamweaver中编辑代码。在我试图查询的表中,它包含两个字段:ID和username。asp页面上的字段包括月份、年份和用户名。如果我查询ID字段,查询将正确显示,用户名字段将按ID显示。但是,如果我尝试按用户名排序查询,它将无法正确显示。相反,它根本不显示用户名 当我想按ID订购时,经典的asp代码如下所示: rstDATA.open "S

我在使用经典asp时遇到了一个奇怪的事件。我继承了一个用经典asp编写的应用程序,它连接到Microsoft Access数据库。我正在Adobe Dreamweaver中编辑代码。在我试图查询的表中,它包含两个字段:ID和username。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页面中,但也没有成功

有人知道它为什么不起作用吗?任何帮助都将不胜感激。

这不是“奇怪的部分”,应该是这样的

如果使用保留字作为字段名,则必须在brasket“[]”中使用字段名

变通办法

要解决此问题,请不要使用特殊字符。 如果必须在查询表达式中使用特殊字符,请将 括号中的特殊字符([])。例如,如果您想使用 大于号(>),使用[>]


我看不出您在哪里查询问题中所述的两个字段。select语句仅包含要显示的用户名。你是在把确切的代码复制到这篇文章吗?如果没有,代码中可能缺少用户名和id。为了按字段排序,应该显示该字段。这不是“奇怪的部分”,应该是这样的。感谢您的建议。我试试这个。