1

私は Visual Studio 2010 を使用しています。プロジェクト内に DataSet を追加します。SQL Server 2000 データベースへのすべてのクエリを実行するクエリ テーブル アダプタがあります。クエリの 1 つは、4 つのパラメーターを受け取るストアド プロシージャを使用して形成されます。パラメータの 1 つは 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.

これを回避するには、ストア プロシージャの 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 に答える