作為一個學習NHibernate的新手,經常會遇到各種各樣的奇葩問題,其實這些問題的出現恰恰說明瞭我們技術的不足,將這些問題記錄下來加以總結相信對我們進一步的學習有很大的幫助。 在將封裝好的數據插入到資料庫里,運行到提交事務的時候,出現了“OracleParameterCollection 的 Co ...
作為一個學習NHibernate的新手,經常會遇到各種各樣的奇葩問題,其實這些問題的出現恰恰說明瞭我們技術的不足,將這些問題記錄下來加以總結相信對我們進一步的學習有很大的幫助。
在將封裝好的數據插入到資料庫里,運行到提交事務的時候,出現了“OracleParameterCollection 的 Count=9 無效” 的問題,由於一般實體錯誤的話,在執行登陸等操作時會自動報資料庫異常等信息,便沒有及時考慮到實體設置的錯誤而繞了一大圈子,在考慮了各種錯誤情況下均無果,最後哭笑不得的發現,其實這個問題的出現確實與實體有關,是因為在實體關聯資料庫時一個欄位賦值了兩次,而另一個欄位並沒有被賦值,導致找不到列9報錯。
一般來說,將數據插入資料庫的過程當中最容易出現的問題基本都在保存、更新等內容里,在這次的錯誤讓人有些摸不著頭緒,從而浪費了一下午的時間,將項目的進度大大拖慢,以此謹記。
在程式報錯的時候最重要的就是仔細看他拋出錯誤的詳細內容,報錯的根源是在哪條語句(可以採用將相關語句逐一屏蔽、斷點調試等方法)比如若是NHibernate之類的錯誤首先檢測實體是否書寫正確(與資料庫相對應的列、主鍵的設置等),其次檢測一下sql語句是否正確,語句中的“select * from table ”中的table不是資料庫的表名而是實體類的類名。
學無止境……