【发布时间】:2014-01-08 20:41:27
【问题描述】:
我们正在尝试将 ODBC 与 SQL Server 2012 一起用于我们的新应用程序,因为 MS 正在逐步淘汰 OleDb,我们希望尝试使其更容易(更容易?)移植到其他数据库。
问题是,当我尝试使用 ODBC 数据访问类时,尝试保存日期时间时出现以下错误:
错误 [22008] [Microsoft][SQL Server Native Client 11.0]日期时间字段 溢出。小数秒精度超过指定的比例 参数绑定。
好的,我明白了。 C# 具有比 ODBC 参数想要使用的更高级别的精度。我知道 ODBC 实现不喜欢几分之一秒,但有什么办法可以保持日期时间精度?
谢谢,
丁斯代尔
编辑:好的,这里是原始参数构造函数:
String Name = "created";
DateTime DateTimeValue = DateTime.Now;
OdbcCommand cmd = new OdbcCommand();
cmd.CommandType = request.CommandType;
cmd.CommandText = request.Command;
OdbcParameter param;
param = new OdbcParameter(Name, OdbcType.DateTime);
param.Value = DateTimeValue;
cmd.Parameters.Add(param);
此代码生成以下错误: 错误 [22008] [Microsoft][SQL Server Native Client 11.0] 日期时间字段溢出。小数秒精度超过参数绑定中指定的比例。
解决方法是像这样使用扩展构造函数:
param = new OdbcParameter(Name, OdbcType.DateTime, 23, System.Data.ParameterDirection.Input, false, 0, 3, Name, DataRowVersion.Current, DateTimeValue);
再次感谢 Kumod! 丁斯代尔
【问题讨论】:
-
您能否举例说明您是如何使用发生这些错误的调用的?
标签: c# sql sql-server datetime odbc