使用.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数据类型转换为日期时间数据类型会导致超出范围的值。语句已被终止。
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是一个字符串,而不是一个日期时间字段。