使用.net和SQL更新datetime

本文关键字:更新 datetime SQL net 使用 | 更新日期: 2023-09-27 18:15:04

我有实体框架ObjectContext。我需要更新datetime类型的列。

下面是我的代码:
ObjectContext.ExecuteStoreCommand(string.Format("update MyTable set DateTimeField='{0}' where Id = {1}",
                                  myEntity.DateTimeField, IdValue));

为什么我得到这样的异常:

提交操作失败。将varchar数据类型转换为日期时间数据类型会导致超出范围的值。语句已被终止。

使用.net和SQL更新datetime

ObjectContext.ExecuteStoreCommand接受SqlParameters,所以最好使用参数化查询,如:

ObjectContext.ExecuteStoreCommand(
    "update MyTable set DateTimeField=@pDateTimeField  where Id = @pID", 
      new SqlParameter {ParameterName = "@pDateTimeField", Value =myEntity.DateTimeField  },
      new SqlParameter {ParameterName = "@pID", Value =IdValue });

参见:使用参数化命令- MSDN

当前你的代码不工作,因为它认为DateTime作为字符串值。

它看起来像myEntity。DateTimeField是一个字符串,而不是一个日期时间字段。