1

次のコードは、このエラーでクラッシュします。

System.Data.OleDb.OleDbException: 'パラメーターが少なすぎます。予想される 1'

Dim selectString As String = "SELECT * FROM Products WHERE id = ?;"
Dim cmd As OleDbCommand = New OleDbCommand(selectString, dbOleDB)
cmd.Parameters.AddWithValue("ID", id)
Dim reader As OleDbDataReader = cmd.ExecuteReader()

Access データベース エンジンのインストールを修復すると、エラーは 1 日で消えます。
異なるバージョンの Windows を実行している複数のマシンでも同じことが起こります。
この問題は約 2 週間前に始まりました。

誰が何が起こっているのか知っていますか?

4

1 に答える 1

0

OleDbCommand は、名前付きパラメーターで正しく動作しません。

代わりにこれを試してください。

Dim selectString As String = "SELECT * FROM Products WHERE id = ?;"
Dim cmd As OleDbCommand = New OleDbCommand(selectString, dbOleDB)
cmd.Parameters.Add("@ID", OleDbType.BigInt).Value = id; '@ID essentially means nothing here.  The Adds you make have to be sequential
Dim reader As OleDbDataReader = cmd.ExecuteReader()
于 2020-02-20T20:37:58.677 に答える