有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

mysql在java中通过查询更改数据库的现有行

我想更新mysql中的一行。。。为此,我在按下更新按钮时使用了更新查询,但它不起作用。。。即使没有得到任何错误。。。很难找到它为什么不起作用

public void actionPerformed(ActionEvent arg0)
{
    try
    {
        String b="";
        String query1="update salesbill set `TaxAmount`='"+b+"' where SONumber = ?";
        PreparedStatement   pst=conn.prepareStatement(query1);
        pst.setString(1,sonum.getText()); //sonum is textfield where values passed for SONumber

        pst.setString(1, amt.getText());    //amt istextfield variable
        b=amt.getText();

        System.out.println(query1);

        pst.execute();
    }
    catch(Exception g)
    {
        g.printStackTrace();
    }
}

共 (1) 个答案

  1. # 1 楼答案

    你需要评论一下

     pst.setString(1, amt.getText());
    

    因为它正在覆盖

    pst.setString(1,sonum.getText());
    

    而且,您的查询需要SONumber

    ==更新==

    正如OP在其评论中提到的,他/她试图更新TaxAmount,即amt.getText()。所以,更新了我的帖子

    String query1="update salesbill set `TaxAmount`=? where SONumber = ?";
    PreparedStatement   pst=conn.prepareStatement(query1);
    pst.setString(1, amt.getText()); 
    pst.setString(2,sonum.getText()); //sonum is textfield where values passed for SONumber   
    pst.execute();
    

    请参阅PreparedStatement,以使用适当的方法设置值