【发布时间】:2010-02-03 23:55:02
【问题描述】:
我正在尝试使用 ADO.NET 通过存储过程进行数据库更新。
基本上我设置了所有参数和命令,并设置了如下参数之一
DbParameter nm8 = provider.CreateParameter();
nm8.ParameterName = "@EDITDATE";
nm8.DbType = System.Data.DbType.DateTime;
nm8.Value = aObject.ADateTime;
command.Parameters.Add(nm8);
在存储过程中,输入参数定义为
@EDITDATE datetime = null,
基本上,存储过程所做的只是获取一条记录并使用传入的 EDITDATE 对其进行更新。
但我收到此错误
将数据类型 varchar 转换为 datetime 时出错。
我发现日期时间值被传递到存储过程中,如下所示
2010-02-03 15:26:54.3100000
而不是
2010-02-03 15:26:54.310
我认为这就是导致投射错误的原因。
所以我的问题是为什么 ado.net 以这种格式转换日期时间? 如何在不将值作为字符串传递的情况下解决问题。
非常感谢。
【问题讨论】:
标签: datetime ado.net parameters