数据库中的Sqlite更新查询数据不更新java gui应用程序

数据库中的Sqlite更新查询数据不更新java gui应用程序,java,database,sqlite,user-interface,Java,Database,Sqlite,User Interface,伙计们,我正在尝试将数据更新到我的数据库中,我已经创建了插入和删除选项,但创建此更新查询后,我的数据没有在数据库中更新,因此我请求您的帮助,请帮助我我的问题在在线视频和教程中,数据正在使用where语句更新,其中他们使用整型数据类型但我的数据库没有任何整型字段我只有字符串字段,数据没有更新请帮助下面发布更新代码按钮在此处输入代码 JButton ud_btn_Update = new JButton("Update"); ud_btn_Update.setFont(new Fon

伙计们,我正在尝试将数据更新到我的数据库中,我已经创建了插入和删除选项,但创建此更新查询后,我的数据没有在数据库中更新,因此我请求您的帮助,请帮助我我的问题在在线视频和教程中,数据正在使用where语句更新,其中他们使用整型数据类型但我的数据库没有任何整型字段我只有字符串字段,数据没有更新请帮助下面发布更新代码按钮
在此处输入代码

JButton ud_btn_Update = new JButton("Update");
        ud_btn_Update.setFont(new Font("Tahoma", Font.BOLD, 20));
        ud_btn_Update.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try { String query="update Customers set "
                        + "Name='"+ud_tf_Name.getText()+"' "
                        + ",Address='"+ud_tf_Address.getText()+"' "
                        + ",Gstin='"+ud_tf_Gstin.getText()+"' "
                        + ",Discount='"+ud_tf_Discount.getText()+"' "
                        + ",State='"+ud_tf_State.getText()+"' "
                        + ",StateCode='"+ud_tf_StateCode.getText()+"' "
                        + " where Name='"+ud_tf_Name.getText()+"' ";

                PreparedStatement pst = connection.prepareStatement(query);  
                  pst.execute();
                  JOptionPane.showMessageDialog(null, "Data Updated!");
                  pst.close();
            } catch(Exception e4) {
                e4.printStackTrace();
                }

您的代码在语法上似乎是正确的,如果表存在并且表名和列名没有拼写错误,它应该可以工作。
可能导致代码不更新表中的行的是
where
子句。
此值:

ud_tf_Name.getText()
显然是要替换列
name
中旧值的新名称,对吗?
因此,它不存在于表中,
where
子句不返回任何行,也不更新任何内容。
必须将旧名称保存在字符串变量中,例如
oldname
,并在
where
子句中使用它:

............................................
 + " where Name='"+oldname+"' ";

您还必须学会使用创建更安全的代码。

String oldvalue=ud\u tf\u Name.getText();您必须在更改ud_tf_Name中的值之前执行此操作。我理解您的意思是,因此我尝试了此操作,但没有更新Name colum textfield,而且它确实有效,但我还想更新Name colown,因此我尝试了此代码,但未起作用。请参阅代码和帮助字符串oldvalue=ud_tf_Name.getText();其中Name='“+oldvalue+”@forpast此行:
String oldvalue=ud_tf_Name.getText()
不能位于
actionPerformed()
内,因为此时名称已更改,因此您将获得新值。您必须将它放在代码中显示行的初始值的位置。谢谢,这确实有帮助,但我找到了另一种方法,我有一个组合框,其中选择了textfield中的i数据,它以各自的值显示所有其他值,因此我更新了代码,其中Name='“+comboBoxName.getSelectedItem().toString()+”“非常感谢你,伙计,你帮了我很大的忙,从3天里找到了答案,谢谢你@forpas