C#中的数量控制

Dis*_*ude 0 c# c#-4.0

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)

jos*_*rry 5

问题是你没有检查的情况ret == -1.更改您的第二个if语句以if(ret < 1)解决您的问题.

此外,在行cmd.ExecuteNonQuery();添加后直接ret--;ret变量与现在在数据库中的值同步.