2013-03-15 56 views
1

我创建一个程序,从ms访问加载数据到列表框,并创建一些行动,如添加,更新和删除项目..我得到的项目插入和正确删除。但我不知道我应该怎么做才能使这个更新工作,因为更新查询只是点击按钮(该项目没有得到更新数据库)时不会启动,只是为了让你知道我得到了messagebox.show低于此代码工作应该是。更新的MS Access数据库不工作没有任何错误

  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

就我所见,它们的参数顺序错误,它们必须与查询顺序相同。除了对程序员的提示之外,这些名称是完全不相关的,它们并没有真正意义上的使用。这意味着正在使用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(); 
+0

so..thats唯一让它不会执行..我的坏..谢谢 – 2013-03-15 11:24:11

相关问题