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

这将是我的参数命令,但我抛出一个错误,所以我弄错了,但我不知道如何修复它,错误告诉你:更新影响 0 它应该影响一个

那么,我在哪里弄错了

编辑:数据库类型

在此处输入图像描述

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 回答