Dapper 操作 ACCESS 數據庫問題總結


一,執行INSERT報錯

前提條件:在執行INSERT操作時,表中的“是/否”類型和”時間“類型。

問題:用Dapper的Dynamic 如”new {a=AA}“,就算是按SQL的參數與PARAMETER一一對應都會,  報錯如下:”標准表達式中數據類型不匹配。“

解決辦法:

采用DynamicParameters

代碼如下:

DynamicParameters用法

注意:雖然DynamicParameters中有參數同樣也可以加Dynamic 類型,但經本人測試不起作用,還是用上面的才可以解決。

二,用LIKE 查詢問題

問題描述:在網上有很多人說ACCESS中的LIKE和SQL SERVER 不一樣,要用*,結果我測試不對還是得用”%”。

有的要用這種方式寫:

其它人對Like的用法

經過我測試這2種方式都可以。而我用DynamicParameters老是報錯。同樣的錯誤:“標准表達式中數據類型不匹配。“

先看一下問題代碼吧:

問題代碼

問題原因:

這個問題是因為SQL中的參數和PARAMETER中的參數沒有一一對應,這個好像在OleDbParameter中也會有這種問題,這個是因為ACCESS的原因在SQL SERVER 就不會有類型的問題,

解決辦法:

將 p.Add("@cam", "%" + txtCamName.Text + "%");放到最后一個因為在SQL中他的參數也是在最后:

正確代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM