码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2017-02-13 20:03:29      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:最小值   错误信息   替代   framework   程序   min   范围   应用程序   传递值   

提示信息如下

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


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

 

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

标签:最小值   错误信息   替代   framework   程序   min   范围   应用程序   传递值   

原文地址:http://www.cnblogs.com/JiYF/p/6395023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!