c# - 更新后的 MS Access 数据库无法正常工作

标签 c# ms-access textbox listbox updates

我创建了一个从 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();

最佳答案

您的参数顺序错误,据我所知,它们必须与查询的顺序相同。这些名称完全无关紧要,只是作为对程序员的提示,它们没有任何实际意义。这意味着使用了错误的 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();

关于c# - 更新后的 MS Access 数据库无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15430517/

相关文章:

c# - 我想从 Silverlight UIElement 中拖动图像并将其放到用户桌面或 Windows 资源管理器中

C# AND ACCESS - 条件表达式中的数据类型不匹配

jQuery 文本框光标到文本末尾?

mysql - 加载数据时,Access 接近 2GB 限制

c# - 弹出窗口中的文本框未在 WPF 应用程序中获得焦点

c# - 如何指示单行 C# winforms 文本框中有更多文本?

C# 基于 if 语句在 linq 列表中返回值

c# - 流不可读 - 没有任何内容被丢弃,为什么这不起作用?

c# - 构建具有多重排序的表达式

sql - 使用连续编号对重复项进行编号