pstrjds,从您提供的代码我试图实现该代码和几天前提供的msdn链接.我不知道如何把它放在一起,但我看到一条消息"已经声明了变量名''ID'.变量名在查询批处理或存储过程中必须是唯一的." 我是否需要创建存储过程?我可以假设我的ID位也正确,你解释了多少次?谢谢.在此处输入代码
cs.Open();
int remainingStock = 0;
string Query = "SELECT StockA SET QTY = @QTY " + "WHERE ID = @ID;";
SqlCommand cmd = new SqlCommand(Query, cs);
cmd.Parameters.Add("@ID", SqlDbType.Int);
cmd.Parameters["@ID"].Value = 1;
cmd.Parameters.AddWithValue("@ID", Query);
try
{
if (remainingStock == 1)
{
lbqty.Text = "Not enough stocks.";
}
else
{
cmd.CommandText = "UPDATE StockA SET QTY = QTY-1
WHERE ID=1";
int rowsUpdated = cmd.ExecuteNonQuery();
remainingStock--;
string remaining = "Remaining stocks: " +
remainingStock.ToString();
txQty.Text = remaining;
lbqty.Text = remaining;
DGA.Update(); //this is DataGridView
}
Int32 rowsAffected = cmd.ExecuteNonQuery();
Console.WriteLine("RowsAffected: {0}", rowsAffected);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
cs.Close();
}
Run Code Online (Sandbox Code Playgroud)
问题是你没有检查的情况ret == -1.更改您的第二个if语句以if(ret < 1)解决您的问题.
此外,在行cmd.ExecuteNonQuery();添加后直接ret--;将ret变量与现在在数据库中的值同步.
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |