经典 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 数据库的应用程序。我正在 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 页面中,但它也不起作用。
有谁知道它为什么不工作?任何帮助将不胜感激。
【问题讨论】:
我没有看到您在哪里查询问题中所述的 2 个字段。您的选择语句仅包含要显示的用户名。您是否将确切的代码复制到这篇文章中?如果不是,您的代码中可能缺少用户名和 ID。为了按字段排序,应显示该字段。 这不是“奇怪的部分”,应该是这样的。 【参考方案1】:这不是“奇怪的部分”,应该是这样的。
如果你使用保留字作为字段名,那么你必须在括号'[]'中取字段名。
https://support.microsoft.com/en-us/kb/826763
解决方法
要解决此问题,请不要使用特殊字符。 如果必须在查询表达式中使用特殊字符,请将 括号 ([]) 中的特殊字符。例如,如果你想使用 大于号 (>),请使用 [>]。
【讨论】:
感谢您的建议。我会试试这个。以上是关于经典 asp 查询未按连接到 Microsoft Access 数据库的用户名排序的主要内容,如果未能解决你的问题,请参考以下文章
经典 asp - ms 访问更新问题(Microsoft Jet 数据库引擎停止)
ASP.NET将项目发布到服务器后 根据导入的Excel表里面的数据查询,报错:Microsoft Jet 数据库引擎打不开文