1

我正在使用Visual Studio 2010.在该项目中,我们在其中添加了一个DataSet;我们有一个查询表适配器来完成对SQL Server 2000数据库的所有查询。其中一个查询是使用接收四个参数的存储过程形成的。其中一个参数是DateTime数据类型。虽然我们签了很多次,我们收到了意外的异常:异常日期时间OleDbParameter

Provider encountered an error while sending command parameter[0] '' value and stopped processing. 
Conversion failed for command parameter[1] '' because the data value overflowed the type used by the provider. 
Provider encountered an error while sending command parameter[2] '' value and stopped processing. 
Provider encountered an error while sending command parameter[3] '' value and stopped processing. 
Provider encountered an error while sending command parameter[4] '' value and stopped processing. 

解决此工作,如果我们删除存储过程的日期时间参数,查询执行成功,否则,我们得到之前提到的异常。

我们注意到,日期时间参数具有属性设置如下:

DbType: DateTime 
ProviderType: DBTimeStamp 

的任何方法,努力实现查询的执行将大大欢迎。

回答

0

当我收到这个错误,我不得不改变我的日期参数来告诉数据类型是什么。

老方法

cmd.Parameters.Add(new OleDbParameter("TDate", DateTime.Now)); 

新途径

OleDbParameter dateParam = new OleDbParameter("TDate", OleDbType.Date); 
dateParam.Value = DateTime.Now; 
cmd.Parameters.Add(dateParam);