c#
  • sql
  • ms-access
  • select
  • oledb
  • 2013-07-17 131 views 0 likes 
    0

    因此,可以说我有一个数据库表,ErrorsSQL选择字符串与关键字

    [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文件查询。我环顾四周,找不到任何与此有关的东西,很多关于使用方括号的关键字列名称,但不是我特别的问题。

    回答

    3

    有逃脱单引号,否则你混淆了解析器:

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

    你可以参数化该查询。但是,无论你如何处理这个问题,你都需要避开引号。

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

    问题是你的字符串,这将导致解析器LIKE后结束串在第一次报价字面内有单引号。您的查询更改为:

    SELECT ID 
    FROM Errors 
    WHERE ErrorDescription ='SELECT Name LIKE ''*A*'' Returned 0 Results' 
    
    相关问题