解決:SqlDateTime 溢出。必須介於 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之間提示問題


提示信息如下

“/”應用程序中的服務器錯誤。


SqlDateTime 溢出。必須介於 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之間。

問題現象:

 

問題原因: 

出現個問題的原因是:在更新或者添加數據,出現的錯誤,再給parameters傳遞值沒有對DateTime類型字段沒有傳遞值,默認為null

但是在sqlserver里面對DateTime類型取值范圍是:介於 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 

 但是在而.NET Framework中,DateTime類型,最小值是1/1/0001 0:00:00  12/31/9999 11:59:59 PM

當在傳遞數據時候,沒有給DateTime類型賦值,默認為null即:1/1/0001 0:00:00 顯然不在SQLServer中Datetime類型的范圍之中,就產生溢出,導致此錯誤信息

代碼查找:

字段

 

數據添加

 數據庫中的datetime類型字段:

 

 

解決辦法:

辦法1.再給datetime類型得變量賦值:不讓其等於null而且在區間於 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM這個之間

辦法2:使用System.Data.SqlTypes.SqlDateTime.MinValue替代System.DateTime類型,這樣SqlDateTime的MinValue和Sql中DateTime的范圍吻合,就不會再出現以上的錯誤了。

 


免責聲明!

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



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