将日期值插入数据库时​​出错

时间:2013-02-18 13:00:41

标签: c# sql sql-server visual-studio-2010

我在将一个日期值插入数据库时​​遇到了一个奇怪的问题。在调试我的程序时,我意识到它将前五行插入到数据库中,但在第六行中它会引发异常。我通过检查可以用第六个成功执行的前5个查询并且它们都是相同的,验证了它是否是语法错误或者是否一直发生了变化。如果类型有问题,它应该从头开始抛出异常。你觉得怎么样?

这是我得到的错误

  

将char数据类型转换为日期时间数据类型会导致日期时间值超出范围。

2 个答案:

答案 0 :(得分:5)

  

将char数据类型转换为datetime数据类型会导致日期时间值超出范围。

这表明您将值指定为字符串并执行转换。不要那样做。尽可能避免字符串转换。 (我怀疑你提供的字符串格式与用于解析的字符串格式之间可能存在脱节。完全删除字符串转换是最好的解决方法。)

相反,请将值设为SqlParameter,其值为DateTime

答案 1 :(得分:0)

我认为你的问题是因为C#中的DateTime类型从01-01-0001开始和SQL Server中的区别,即1753年1月1日到9999年12月31日,check this link,所以我认为(由于Jon解释的错误)你试图在SQL Server中插入一个小于01-01-1753的Date值。这就是显示SQL Exception的原因。