相信很多人進行數據存儲時,會遇上如標題的異常錯誤。 其實也不算上一個錯誤。 當你的程式中有宣告一個欄位的數據類型為DateTime時,但你又沒有賦值給它,就進行存儲時,它就會得到這樣一個結果。看看下麵的情況: 看到否,在程式中DateTime預設情況之下是這個值{1/1/0001 12:00:00 ...
相信很多人進行數據存儲時,會遇上如標題的異常錯誤。
其實也不算上一個錯誤。
當你的程式中有宣告一個欄位的數據類型為DateTime時,但你又沒有賦值給它,就進行存儲時,它就會得到這樣一個結果。
看看下麵的情況:
看到否,在程式中DateTime預設情況之下是這個值{1/1/0001 12:00:00 AM},其實它就是.NET Framework中DateTime類型最小預設值。而在資料庫中DateTime類型欄位,預設最小值是1/1/1753 12:00:00。顯然,超出了MS SQL DateTime數據類型的最小值範圍,導致數據溢出錯誤。
那我們怎解決它呢?超簡單。就是宣告這個欄位時,設為可空即可。
宣告property時,數據類型設為可空Nullable,即要類型後添加一個"?"。
當然,有一個前提是數據表存儲這個欄位是設為可空的,如果不是可空的,你需要在前端程式一定有值給它,也就沒有這個情況出現了。