Sqlcon.Open();
我的更新在我运行此脚本时不会工作,这是我第一次使用MSACCESS作为数据库,请帮我如何更新,谢谢
var _query = "update [Inventory_tbl] set [Item Name] = ?, [Description] = ?, [Price] = ?, [Stock] = ? where [Item Code] = ?";
var cmd = new OleDbCommand(_query, Sqlcon) { CommandType = CommandType.Text };
cmd.Parameters.AddWithValue("[Item Code]", getitemcode);
cmd.Parameters.AddWithValue("[Item Name]", getitemname);
cmd.Parameters.AddWithValue("[Description]", getdesc);
cmd.Parameters.AddWithValue("[Price]", getprice);
cmd.Parameters.AddWithValue("[Stock]", Convert.ToString(Convert.ToInt32(myStock) - Convert.ToInt32(getquantity)));
var ctr = cmd.ExecuteNonQuery();
Sqlcon.Close();
MessageBox.Show(ctr.ToString());
}
答案 0 :(得分:1)
在MS-Access中,您声明的{{1>} 订单添加了参数。
对于您的情况,您将OleDbCommand
列添加到我认为最后属于getitemcode
的{{1}}列。
来自OleDbCommand.Parameters
property
OLE DB .NET提供程序不支持传递的命名参数 SQL语句或由a调用的存储过程的参数 CommandType设置为Text时的OleDbCommand。在这种情况下, 必须使用问号(?)占位符。例如:
Item Name
?
因此,将OleDbParameter对象添加到的顺序 OleDbParameterCollection必须直接对应于的位置 命令文本中参数的问号占位符。
我认为你的代码应该是这样的;
Item Code