SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。

问题:

在用.net敲机房的时候出现了如下问题

SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间。


原因:

传给数据库的时间类型为NULL。

在程序里定义了一个时间类型的变量,没有给赋值就传给了数据库。这时这个变量的值默认为01年01月01日。由于数据库中DateTime类型字段,最小值为1/1/1753 12:00:00,而.Net中,DateTime类型中,最小值为1/1/0001 0:00:00,显然,超出了SQL值得最小范围,导致数据溢出的错误。


解决办法:

1.检查一下是否给时间赋值

2.没赋值的地方或用DateTime.MinValue的地方都换为SqlDateTime.MinValue,这样就不会溢出


推荐:

http://blog.sina.com.cn/s/blog_707a4cbf0100xvk7.html


http://blog.****.net/kwy15732621629/article/details/50849137?locationNum=13&fps=1