予約語である ODBC の値を検索する必要があるという問題があります。そう:
SELECT * FROM Customer WHERE AccountNumber = 'Sum'
この場合、「Sum」は予約語であるため、構文エラーが発生します。アクセスのエラーは、「SELECT ステートメントに、スペルが間違っているか欠落している予約語または引数名が含まれているか、句読点が正しくありません」です。
そのような文字列を検索する方法はありますか?
WHERE 句の一部として使用する文字列をパラメーター化します。キーワード「PRIORITY」を使用したときに同じ問題が発生したためです。パラメーターを使用するように 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())
{
...
}
}
具体的に「Sum」を検索する代わりに。あなたは試すことができます:
SELECT * FROM Customer WHERE AccountNumber LIKE('%Sum%')