【发布时间】:2023-04-04 02:02:01
【问题描述】:
我正在尝试使用 JBDC 更新我的 SQL 数据库。但由于某种原因,查询似乎没有执行。我正在为我的登录屏幕和菜单使用 Jframe GUI。
我要做的是获取在登录屏幕中输入的帐号,然后将用户输入的金额减去当前余额,然后将帐号和重命名金额传递给数据库,然后更新帐户余额。
这是一些值的声明部分:
public class MainMenu extends javax.swing.JFrame
{
private Login log = new Login();
private Account acc = null;
private String accnum = log.getacctfld();
Connection con = new DBConnection().connect();
}
这是退出按钮的代码:
private void withdrawActionPerformed(java.awt.event.ActionEvent evt)
{
String input = amountentered.getText();
if ("".equals(input))
{
message.setText("Enter amount to perform operation");
return;
}
Double amt = Double.parseDouble(input);
if (amt > acc.getAmount() || amt <= 0.0)
{
message.setText("INVALID AMOUNT. PLEASE TRY AGAIN.");
return;
}
double bal = acc.getAmount() - amt;
String command = "UPDATE user_atm SET balance =? WHERE accno =?";
try
{
PreparedStatement ps = con.prepareStatement(command);
ps.setDouble(1, bal);
ps.setString(2, accnum);
ps.executeQuery(); // I think the query isn't executing
ps.executeUpdate();
}
catch(Exception e)
{
}
acc.setAmount(bal);
balance.setText(bal + "");
amountentered.setText("");
}
更新:
accnum 没有被初始化。我试图从我的登录屏幕传递来自 JTextField 的值。但它没有用。所以我将帐号传递给 setter,然后将 accnum 分配给 getter,现在它可以工作了。
我还删除了ps.executeQuery();
【问题讨论】:
-
仍然必须删除
ps.executeQuery(); -
@forpas 哦,是的,我也删除了它。对不起,我忘了提。谢谢