首次 Insert 成功,後續 Update 執行無異常,但數據庫中 ReserveNumber 變為 0 而非遞增。
UPDATE Table SET ReserveNumber = @num, TotalProfit = @profit WHERE ...
參數 @num 來自變量,但變量未正確累加(如每次重置為 0 或未賦值)。
Console.WriteLine(sql) 打印實際 SQL 與參數值num = oldNum + 1; 而非 num = 1;WHERE 條件精確匹配唯一行cmd.CommandText = "UPDATE Report SET ReserveNumber = ReserveNumber + 1, TotalProfit = TotalProfit + @price WHERE Date=@date AND Room=@room";
cmd.Parameters.AddWithValue("@price", price);
cmd.Parameters.AddWithValue("@date", date);
cmd.Parameters.AddWithValue("@room", room);
cmd.ExecuteNonQuery();
直接在 SQL 中 ReserveNumber = ReserveNumber + 1 避免應用層併發問題,更簡潔可靠。