1

我创建了一个程序,该程序将数据从 ms-access 加载到列表框,并创建了一些操作,例如添加、更新和删除项目..我正确插入和删除了项目。但我不知道我应该怎么做才能使此更新正常工作,因为单击按钮时更新查询不会启动(数据库中未更新的项目),只是为了让你知道我得到了 messagebox.show在此代码下方按应有的方式工作。

            OleDbCommand cmd = new OleDbCommand("UPDATE Item SET ITEM = @ITEM, ITEM_DESC = @ITEM_DESC, PRICE = @PRICE, QUANTITY = @QUANTITY WHERE ID = @ID", GetConnection());
            cmd.Parameters.AddWithValue("@ID", Convert.ToInt32(txtItemID.Text));
            cmd.Parameters.AddWithValue("@ITEM", txtItemName.Text);
            cmd.Parameters.AddWithValue("@ITEM_DESC", txtItemDesc.Text);
            cmd.Parameters.AddWithValue("@PRICE", Convert.ToDouble(txtItemPrice2.Text));
            cmd.Parameters.AddWithValue("@QUANTITY", Convert.ToInt32(txtItemQuantity.Value));
            cmd.ExecuteNonQuery();
4

1 回答 1

4

您的参数顺序错误,据我所知,它们必须与查询的顺序相同。除了作为程序员的提示外,这些名称完全无关紧要,它们并没有真正意义上的使用。这意味着使用了错误的 ID 值。

OleDbCommand cmd = new OleDbCommand("UPDATE Item SET ITEM = @ITEM,  
          ITEM_DESC = @ITEM_DESC, PRICE = @PRICE, QUANTITY = @QUANTITY 
          WHERE ID = @ID", GetConnection());
cmd.Parameters.AddWithValue("@ITEM", txtItemName.Text);
cmd.Parameters.AddWithValue("@ITEM_DESC", txtItemDesc.Text);
cmd.Parameters.AddWithValue("@PRICE", Convert.ToDouble(txtItemPrice2.Text));
cmd.Parameters.AddWithValue("@QUANTITY", Convert.ToInt32(txtItemQuantity.Value));
cmd.Parameters.AddWithValue("@ID", Convert.ToInt32(txtItemID.Text));
cmd.ExecuteNonQuery();
于 2013-03-15T10:59:03.547 回答