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


原因:

.NET中  DateTime最小值為: 0001-1-1 0:00:00

數據庫中DateTime最小值為: 1753-1-1 0:00:00,

很明顯:.NET中的最小值超出了數據庫時間類型的最小值,導致數據溢出的錯誤。(兩者的最大值都是一樣滴)

 

解決方案:

1、 對程序中的DateTime類型的字段,沒有進行賦值、用DateTime.MinValue作為值得 地方都全部換為,SqlDateTime.MinValue

影響:類似於判斷條件 if(curentTime == DateTime.MinValue) 需要同步修改,否則始終無法走進if里面

2、 定義一個不程序中不可能用的最小值常量,對日期字段,沒賦值的地方或用DateTime.MinValue的地方用此常量

public static readonly DateTime INIT_DATETIME = new DateTime(1900, 1, 1);

3、全部的數據 以對象為單位進行操作,在類構造函數中,賦初值 new DateTime(1900, 1, 1)

 


免責聲明!

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



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