Ole DB 语句在 Access 中运行,但不在 Visual Studios 中

Posted

技术标签:

【中文标题】Ole DB 语句在 Access 中运行,但不在 Visual Studios 中【英文标题】:Ole DB statement runs in Access but not in Visual Studios 【发布时间】:2012-07-24 18:32:03 【问题描述】:

我有以下语句,它在 Access 中返回我想要的结果,但是在 Visual Studio 中,我收到一条错误消息“;预期”,可能是什么问题?

var query = "SELECT Count(*) FROM usersTable WHERE (((usersTable.[uDateCreated]) Between DateAdd("d",-2,Now()) And Now()))";

【问题讨论】:

Ole DB Select Count Statement的可能重复 【参考方案1】:

您需要在字符串中转义引号:

" .. Between DateAdd(\"d\",-2 .. "
                     ^  ^ escape the quotes

【讨论】:

【参考方案2】:

您在查询中使用了引号,它结束了字符串。在d 周围使用撇号:

var query = "SELECT Count(*) FROM usersTable WHERE (((usersTable.[uDateCreated]) " & _
    "Between DateAdd('d',-2,Now()) And Now()))"

具体来说:

DateAdd('d',-2,Now()) 

【讨论】:

【参考方案3】:

我认为您的问题是您的字符串中有“(引号)而没有转义它们。我知道您使用的是哪种语言,但对于许多人来说,您使用 \(反斜杠)转义,那么您的字符串将显示为 DateAdd(\"d\",

【讨论】:

以上是关于Ole DB 语句在 Access 中运行,但不在 Visual Studios 中的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Office 12.0 Access 数据库引擎 OLE DB 提供程序问题

Microsoft Office 12.0 Access 数据库引擎 OLE DB Provider

SQL Server 2008 R2 中缺少 Microsoft Office 12.0 Access 数据库引擎 OLE DB 提供程序?

vb.net2010从ACCESS的OLE字段读出图片显示到PictureBox控件上

MS Access 运行时错误 '3011 显示在一个代码中,但不在另一个代码中

在 SQL Server 中使用 OLE DB 运行多个命令或 sql 脚本