2013-09-16 48 views
0

我遇到了一個問題,那就是我需要在一個保留字的ODBC中搜索一個值。 所以:ODBC SQL,在where子句中使用保留字

SELECT * FROM Customer WHERE AccountNumber = 'Sum' 

在這種情況下,「點心」是保留字,所以我得到一個語法錯誤。 在訪問錯誤是「該SELECT語句包括保留字或參數名拼寫錯誤或缺少,或標點符號不正確」

有沒有一種方法可以搜索這樣的字符串?

+0

你有什麼試過的?你是否嘗試過對一個或多個字母使用某種轉義序列?你有沒有嘗試連接字符串來形成搜索,而不包含字面保留字? – penguat

+0

我試圖用方括號括起來,用「」替代「」。連接字符串是什麼意思? – GarethV

+0

這是僅當您使用ODBC連接時纔會發生的事情嗎?你可以直接對數據庫運行查詢嗎? – penguat

回答

0

而不是專門搜索'總和'。你可以嘗試:

SELECT * FROM Customer WHERE AccountNumber LIKE('%Sum%') 
1

參數化要用作WHERE子句的一部分使用的字符串,並使用關鍵字「優先」時,因爲我有同樣的問題。修改C#代碼以使用參數後,它就起作用了。

using (OdbcCommand command = conn.CreateCommand()) 
{ 
    command.CommandText = "SELECT account_ref FROM SALES_LEDGER WHERE account_ref = '?'"; 
    command.Parameters.Add(new OdbcParameter("?", accountCode)); 

    using (OdbcDataReader reader = command.ExecuteReader()) 
    { 
     ... 
    } 
}