1

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

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.

解决这个问题,如果我们删除 Store 过程的 DateTime 参数,查询将成功执行,否则我们会得到前面提到的异常。

我们注意到 DateTime 参数的属性设置如下:

DbType: DateTime
ProviderType: DBTimeStamp

任何试图完成查询执行的方法都将受到欢迎。

4

1 回答 1

0

当我收到这个错误时,我不得不更改我的日期参数来说明数据类型是什么。

老路

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

新的方法

OleDbParameter dateParam = new OleDbParameter("TDate", OleDbType.Date);
dateParam.Value = DateTime.Now;
cmd.Parameters.Add(dateParam);
于 2017-10-20T21:34:14.527 回答