我们正在尝试将ODBC与SQL Server 2012一起用于我们的新应用程序,因为MS正逐步淘汰OleDb,我们希望尝试将其移植到其他数据库变得容易(更容易?).
问题是,当我尝试使用ODBC数据访问类时,我在尝试保存日期时遇到以下错误:
错误[22008] [Microsoft] [SQL Server Native Client 11.0]日期时间字段溢出.小数秒精度超出参数绑定中指定的小数.
好吧,我得到那种.C#具有比ODBC参数想要使用的更高级别的精度.我知道ODBC实现不喜欢几分之一秒,但是保留日期时间精度的工作是什么?
谢谢,
Dinsdale
编辑:好的,这是原始参数构造函数:
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!Dinsdale