select * from product where product_name like '*金*'
這句sql語句,直接在Access數據庫中執行正常,有結果。
但是在C# 代碼裏組裝該sql語句,然後通過OleDb連接Access執行查詢,卻一直沒有結果。
經過查閱資料發現:
這是因爲運行這些SQL語句時所使用的數據庫引擎語法不同所致,ANSI-89 SQL 語法,通配符爲*。 ANSI-92 SQL 語法,通配符爲“%”。
直接在ACCESS裏面通配符爲“ * ”號;在程序裏面如果使用ADO等數據訪問對象訪問編輯ACCESS數據庫裏的數據,則通配符爲“%”號。
一般來講直接在ACCESS對象(例如查詢、窗體、表等)裏面應該使用“*”號通配符;如果在程序裏使用數據訪問API,例如ADO等間接訪問ACCESS,就應該使用“%”通配符。