0
Using con = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source = Mokmeuh.accdb")
        con.Open()
        dAdapter.UpdateCommand = New OleDbCommand("UPDATE Articles SET Nom = @p1, Prix = @p2, Quantité = @p3 WHERE ((Nom = @p1) AND ((@p2 = 1 AND Prix IS NULL) OR (Prix = @p2)) AND ((@p2 = 1 AND Quantité IS NULL) OR (Quantité = @p3)))", con)
        dAdapter.UpdateCommand.Parameters.Add("@p1", OleDbType.VarChar, 4, "Nom")
        dAdapter.UpdateCommand.Parameters.Add("@p2", OleDbType.Single, 4, "Prix")
        dAdapter.UpdateCommand.Parameters.Add("@p3", OleDbType.Integer, 4, "Quantité")

        dAdapter.Update(dSet.Tables("Articles_table"))
    End Using

これは私のパラメーターを使用したコマンドになりますが、エラーが発生するため、間違っていますが、修正方法がわかりません。エラーは、次のことを示しています。

だから、どこでこれを間違えますか

編集:データベースタイプ

ここに画像の説明を入力

4

1 に答える 1

1

残念ながら、私たちはあなたのデータを十分に理解していません。しかし、ここであなた自身を助けることができます。その UPDATE を SELECT に変えて、どのような結果が得られるかを確認してください。あなたのWHERE sqlは奇妙に見えますが、データがなければ、完全に論理的であっても奇妙に見えるかもしれません。

SELECT * FROM Articles WHERE ((Nom = @p1) AND ((@p2 = 1 AND Prix IS NULL) OR (Prix = @p2)) AND ((@p2 = 1 AND Quantité IS NULL) OR (Quantité = @p3)))
于 2013-10-02T18:39:07.227 に答える