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

Posted

技术标签:

【中文标题】经典 asp 查询未按连接到 Microsoft Access 数据库的用户名排序【英文标题】:Classic asp query not sorting by username connecting to a Microsoft Access database 【发布时间】:2015-07-06 14:41:05 【问题描述】:

我正在使用经典的 asp 遇到一个奇怪的事件。我继承了一个用经典 asp 编写的连接到 Microsoft Access 数据库的应用程序。我正在 Adob​​e 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 页面中,但它也不起作用。

有谁知道它为什么不工作?任何帮助将不胜感激。

【问题讨论】:

我没有看到您在哪里查询问题中所述的 2 个字段。您的选择语句仅包含要显示的用户名。您是否将确切的代码复制到这篇文章中?如果不是,您的代码中可能缺少用户名和 ID。为了按字段排序,应显示该字段。 这不是“奇怪的部分”,应该是这样的。 【参考方案1】:

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

如果你使用保留字作为字段名,那么你必须在括号'[]'中取字段名。

https://support.microsoft.com/en-us/kb/826763

解决方法

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

【讨论】:

感谢您的建议。我会试试这个。

以上是关于经典 asp 查询未按连接到 Microsoft Access 数据库的用户名排序的主要内容,如果未能解决你的问题,请参考以下文章

从经典 ASP 应用程序连接到 SQLExpress

经典 asp - ms 访问更新问题(Microsoft Jet 数据库引擎停止)

从经典 ASP 连接到 MS Access 数据库

ASP.NET将项目发布到服务器后 根据导入的Excel表里面的数据查询,报错:Microsoft Jet 数据库引擎打不开文

不能直接在我的 asp 经典代码页中使用媒体查询(使用 css)

windows 2008 服务器和经典 ASP 目录查询