解决:SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间提示问题 - JiYF - 博客园

来源: 解决:SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间提示问题 – JiYF – 博客园

提示信息如下

“/”应用程序中的服务器错误。


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的范围吻合,就不会再出现以上的错误了。

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏