c# - SQL 更新查询返回错误

标签 c# sql sql-server ms-access

OleDbCommand cmd = new OleDbCommand("SELECT Stock FROM Products WHERE ID=" + ProductID + ";", conn); //run the database query
OleDbDataReader cusReader = cmd.ExecuteReader(); //read the result of the query
cusReader.Read();           
ProductStock = (int)cusReader.GetValue(0);
cusReader.Close();
MessageBox.Show((ProductStock).ToString()); // checks that the form is being accessed and the SELECT query works

OleDbCommand cmd1 = new OleDbCommand("UPDATE Products SET Stock=" + (ProductStock - 1) + "WHERE ID= " + ProductID +";", conn);

try
{
   if (cusReader.RecordsAffected > 0)
   {
      MessageBox.Show("no issue was experienced");
   }
   else
   {
      MessageBox.Show("An issue occured when decreasing stock");
   }
   cusReader.Close();
}
catch (Exception ex)
{
   MessageBox.Show("An error occured in query.\n" + ex.Message);
}

更新查询返回“发生问题”消息。显示变量 Productstock 的消息框确实返回了正确的值。有人可以解释如何解决这个问题吗?

最佳答案

+ "WHERE ID= "+ 中的 WHERE 之前放置一个空格

此外,请确保您在 cmd1 上调用了 ExecuteNonQuery

关于c# - SQL 更新查询返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39870068/

相关文章:

如果在 WHERE 子句中使用函数,sql 查询时间从 1 秒跳到 1 分钟以上

mysql - 如何将表连接在一起 - SQL

php - 查询在游戏数据库中查找用户排名

c# - 如何在 C# 中从具有多个返回值的存储过程中获取剩余输出

c# - 如何在 C# 使用 Selenium WebDriver 上提供 OperaWebDriver

C# byte* 到 VB.NET BitmapData 扫描线

c# - 永远增加你得到-2147483648?

c# - 使用 c#/ASP.net 应用程序获取 SqlParameter 已包含在另一个 SqlParameterCollection 错误中

sql-server - 如何在 SQL Server 查询的 FROM 子句中使用变量?

c# - 异步等待使用和开销