MS Access 更新查询不工作

Posted

技术标签:

【中文标题】MS Access 更新查询不工作【英文标题】:MS Access Update Query Not Working 【发布时间】:2016-10-27 05:34:36 【问题描述】:

我不知道查询出了什么问题,但它没有更新表中的任何值

string qry = "UPDATE Stock SET  Itemname=@n,Unit=@u,Price=@p,Tax=@t,Balance=@b,Status=@s Where Sid=@sid";
OleDbCommand ocmd = new OleDbCommand(qry,BBC);
ocmd.Parameters.AddWithValue("@n", name);
ocmd.Parameters.AddWithValue("@u", unit);
ocmd.Parameters.AddWithValue("@p", price);
ocmd.Parameters.AddWithValue("@t", tax);
ocmd.Parameters.AddWithValue("@b", balance);
ocmd.Parameters.AddWithValue("@s", status);
ocmd.Parameters.AddWithValue("@sid", sid);
ocmd.ExecuteNonQuery();

Price,TaxBalanceDecimal 值。

我进行了调试并且工作正常,但只是没有更新值。

【问题讨论】:

您是否遇到任何错误或异常情况? 你调试了吗?值可以设置为参数吗? 它没有给出任何错误,是的,我进行了调试并且工作正常,但只是没有更新值 您能分享一下您的变量是如何为值定义的吗? 看看这个也***.com/questions/31604951/… 【参考方案1】:

设置每个参数的类型并执行查询。

List<OleDbParameter> paramList = new List<OleDbParameter>();

OleDbParameter param = new OleDbParameter("@param", OleDbType.TypeName);

param.Value = value;

paramList.Add(param);

ocmd.Parameters.AddRange(paramArray);

【讨论】:

【参考方案2】:

我想这会为你做的。

string ConnString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\your_path_here\test.accdb";
using(OleDbConnection conn = new OleDbConnection(ConnString ))
using(OleDbCommand cmd = conn.CreateCommand())

   cmd.CommandText = @ "UPDATE Stock SET  Itemname=@n,Unit=@u,Price=@p,Tax=@t,Balance=@b,Status=@s Where Sid=@sid";

   cmd.Parameters.AddWithValue("@n", txtItemName.Text);
   cmd.Parameters.AddWithValue("@u", txtUnit.Text);
   cmd.Parameters.AddWithValue("@p", Convert.ToDecimal(txtPrice.Text));
   cmd.Parameters.AddWithValue("@t", Convert.ToDecimal(txtTax.Text));
   cmd.Parameters.AddWithValue("@b", Convert.ToDecimal(txtBalance.Text));
   cmd.Parameters.AddWithValue("@s", txtStatus.Text);
   cmd.Parameters.AddWithValue("@sid", txtSID.Text);

   conn.Open();
   int rowsAffected = cmd.ExecuteNonQuery();
   conn.Close();

【讨论】:

以上是关于MS Access 更新查询不工作的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 更新 Oracle 数据库 - 查询问题

MS Access SQL:使用另一个表中的Sum更新连接查询

基于另一个查询的 MS Access SQL 更新查询

如何使用查询或 VBA 和 SQL 更新 MS ACCESS 中的表

在 MS Access 2007 中未正确处理查询部分的日期类型的更新集

查询不会更新子窗体 MS-Access 中的表