0

所以假设我有一个数据库表,Errors

 [ID]    [ErrorDescription]
   1     "SELECT Name LIKE '*A*' Returned 0 Results"
   2     "SELECT Returned Multiple Results"

我想运行一个查询

SELECT ID 
FROM Errors 
WHERE ErrorDescription = 'SELECT Name LIKE '*A*' Returned 0 Results'

有没有办法使这项工作?目前我得到一个

OLEDB 异常“查询表达式中的语法错误(缺少运算符)”

当我尝试使用OleDbDataAdapter对 MS Access 文件运行查询时。我环顾四周,找不到与此相关的任何内容,大量使用方括号作为关键字列名称,但不是我的特定问题。

4

3 回答 3

3

必须转义单引号,否则你会混淆解析器:

SELECT ID FROM Errors WHERE ErrorDescription ='SELECT Name LIKE ''*A*'' Returned 0 Results'
于 2013-07-17T20:08:04.853 回答
0

您可以参数化该查询。但是,无论您如何处理,您都需要转义引号。

SELECT ID FROM Errors WHERE ErrorDescription ='SELECT Name LIKE ''*A*'' Returned 0 Results'
于 2013-07-17T20:09:24.627 回答
0

问题是您的字符串中有单引号,这导致解析器在LIKE. 将您的查询更改为:

SELECT ID 
FROM Errors 
WHERE ErrorDescription ='SELECT Name LIKE ''*A*'' Returned 0 Results'
于 2013-07-17T20:09:40.160 回答