我目前正在开发一个小程序,它允许项目的排序和总成本存储在JavaDB中。
我已成功将整数值存储到数据库中,但项目的成本金额不正确。看起来当选中复选框时,它会将其计为设定值之上的值。有人能看看我错了吗?
非常感谢任何帮助!
屏幕截图:
答案 0 :(得分:1)
好的 - 我想我能看出你的问题。进一步减少代码,你有:
int fanta = 1;
int crisps = 1;
int beer = 2;
int wine = 3;
int water = 0;
...
if(btnFanta.isSelected()) fanta++;
if(btnCrisps.isSelected()) crisps++;
if(btnBeer.isSelected()) beer++;
if(btnWine.isSelected()) wine++;
if(btnWater.isSelected()) water++;
rs.updateInt("TotalCost", fanta + crisps + beer + wine + water);
因此,如果未选择任何内容,则会添加所有值:1 + 1 + 2 + 3 + 0 = 7
,并插入该值。如果选择了Fanta,则首先递增fanta
的值,使其为2,然后将其添加到所有其他零食的值:2 + 1 + 2 + 3 + 0 = 8
,这是您在数据库中看到的你选择芬达。
希望这是有道理的,我猜这不是你想要的。我建议一个解决方案是添加一个新变量,比如totalCost
,如果选中相关复选框,则将值添加到 ,这样,你最终会有类似的东西:
int fanta = 1;
int crisps = 1;
...
int totalCost = 0;
...
if(btnFanta.isSelected()) totalCost += fanta;
if(btnCrisps.isSelected()) totalCost += crisps;
...
rs.updateInt("TotalCost", totalCost);
(如果您不熟悉+=
语法,则与totalCost = totalCost + fanta
说法相同,即您将fanta
添加到之前的totalCost
{} 。)