5

我在将 DateTime 插入数据库时​​遇到问题,出现以下错误:

SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

我知道 SQL 日期必须在 1/1/1753 12:00:00 AM 和 12/31/9999 之间,但是我的日期似乎仍然是 01/01/0001 00:00:00。

我在 Web 服务方法中定义了以下日期:

  [DataMember]
  public DateTime RecordTimeStamp { get; set; }

这在以下代码中用于添加到数据库中

  sqlComm.Parameters.Add("@RecordTimeStamp", SqlDbType.DateTime).Value = pCustomer.RecordTimeStamp;

此代码从带有代码的 aspx 页面获取其值

  DateTime now = DateTime.Now;
  pCustomer.RecordTimeStamp = now;

我试图让它将当前日期插入数据库,但它似乎并没有改变默认值。

4

1 回答 1

5

尝试更改属性

从:

[DataMember]
public DateTime RecordTimeStamp { get; set; }

至:

[DataMember]
public DateTime? RecordTimeStamp { get; set; }

希望这将解决问题。发生的情况是 DateTime 不是 NULL 数据类型,它强制在其中放置一个默认值 (01/01/0001) 以确保将提交非空日期。我不知道为什么它不接受更改的值并抛出“超出范围”异常。这是您可能需要进一步调查的内容。

于 2013-11-26T19:14:46.630 回答