簡體   English   中英

ms access 中的“LIKE”運算符在 vb.net 中不起作用

[英]ms access “LIKE” operator in ms access does not work in vb.net

我希望有人能對這種奇怪的行為有所了解。 我有一個非常簡單的 sql 語句,因此:

"SELECT TOP 1 PartRefID FROM Parts WHERE PartDescription LIKE '*Backshell*' AND ParentID = 2097"

這是執行標量。 當我在訪問查詢編輯器中輸入它時,它工作正常並返回預期值。 然而,當我從一些 vb.net 代碼中運行它時,它總是返回零。 誰能告訴我為什么會這樣? 謝謝

使用 .net 時,您必須使用 % 符號 - 它更像是 ANSI 標准,這也適用於 jet/ace(訪問)數據引擎。

因此,在編寫 .net 代碼而不是 VBA 時,您將使用 % 作為通配符 - 而不是 *. 事實上,即使在 Access VBA 中,如果您要使用 ADO(而不是更常見和推薦的 DAO - 那么即使在 VBA + ADO 中,您也必須使用 % 代替 *)。

所以實際上大多數 sql 語法都使用 %. 對於 ADO,或者現在叫做 ado.net 的東西? 然后 % 將被使用。

但是,里面訪問? 您可以打開 ANSI 兼容性 - 但它會使現有的訪問應用程序變得一團糟 - 所以我不建議這樣做(啟用 Access ANSI sql 兼容模式)。

對於 Access 之外的“大多數”軟件,您幾乎可以假設——即使在訪問 Access 數據庫時,您也使用 % 作為通配符。 這里唯一的例外是如果直接使用 DAO 作為參考庫,我強烈建議您不要這樣做。

所以嘗試使用 % - 一切都應該找到並且很好。

嘗試替換 *

"SELECT TOP 1 PartRefID FROM Parts WHERE PartDescription LIKE '%Backshell%' AND ParentID = 2097"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM