Java 无法从数据库中更新和删除数据

Java 无法从数据库中更新和删除数据,java,sql,database,sql-update,Java,Sql,Database,Sql Update,我正在尝试更新或删除数据库中的数据,但它不起作用。我不知道昨天晚上我困了,想解决另一个问题。而现在这不起作用了。这是它们的代码。我的问题在哪里。当我使用delete命令时,它正在更新,但试图更新表,而不是更新表。我的问题在哪里,如何解决 private void cmd_deleteActionPerformed(java.awt.event.ActionEvent evt) { Strin

我正在尝试更新或删除数据库中的数据,但它不起作用。我不知道昨天晚上我困了,想解决另一个问题。而现在这不起作用了。这是它们的代码。我的问题在哪里。当我使用delete命令时,它正在更新,但试图更新表,而不是更新表。我的问题在哪里,如何解决

 private void cmd_deleteActionPerformed(java.awt.event.ActionEvent evt) {                                           

        String sql="delete  from maintable where İsim =?   ";



        try{

        pst=conn.prepareStatement(sql);

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

        pst.execute();

        JOptionPane.showMessageDialog(null, "Silindi");


        }catch(Exception e){

        JOptionPane.showMessageDialog(null, e);


        }

        Update_table();




    }             
这是为了更新:

 private void cmd_updateActionPerformed(java.awt.event.ActionEvent evt) {                                           

try{

String value1=jTextField1.getText();
String value2=jTextField2.getText();
String value3=jTextField3.getText();
String value4=jTextField4.getText();
String value5=jTextField5.getText();



String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
              pst=conn.prepareStatement(sql);
              pst.execute();
              JOptionPane.showMessageDialog(null, "Güncellendi");



}catch(Exception e){;

        JOptionPane.showMessageDialog(null, e);


}
  Update_table();




    }          
编辑:“pst=conn.prepareStatement(sql);”它给了我红色下划线错误,这是括号中sql单词的下划线,表示“找不到符号”

这是用于更新的

private void cmd_updateActionPerformed(java.awt.event.ActionEvent evt) {                                           

try{

String value1=jTextField1.getText();
String value2=jTextField2.getText();
String value3=jTextField3.getText();
String value4=jTextField4.getText();
String value5=jTextField5.getText();



String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
              pst=conn.prepareStatement(sql);
              pst.executeUpdate();
              JOptionPane.showMessageDialog(null, "Güncellendi");



}catch(Exception e){;

        JOptionPane.showMessageDialog(null, e);


}
  Update_table();




    }          
对于插入、更新和删除,您应该调用executeUpdate()而不是execute()

注意这不是使用preparedStatement的正确方法

 String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
                  pst=conn.prepareStatement(sql);
这样

 pst=conn.prepareStatement("update maintable set İsim=?,Yaş=?,Konum=?,EPosta=?,KatılımTarihi=?"); pst.setString(1,value1);
pst.setString(2,value2);
pst.setString(3,value3);
pst.setString(4,value4);
pst.setString(5,value5);

pst.executeUpdate();
使用pst.executeUpdate()代替pst.execute(),这样它就可以正常工作

对于事务(插入、删除、更新),请使用executeUpdate()方法


要选择(选择)数据,请使用executeQuery()。

Hmm,感谢您的回答,但它不起作用。他们两个又是一样的;只是删除jtable或者只是更新jtable,而不是数据库。因此,当我重新登录到程序数据时,数据与我编辑或删除的数据不同。我尝试了你最后的建议,你给了我使用它的建议,但是,当我把这个代码应用到我的程序中时,它给出了一些红色下划线的错误。我会编辑我的问题。@Qce我不能说你为什么会出错,但这是preparedstatement的正确用法。你在这里和这里检查它@ace我已经编辑了我的答案,只要复制并粘贴到你的代码中,如果你发现错误,你可以问我它没有以代码形式给出错误,但它不起作用。同样的事情,显示了我在programram上的编辑,当我重新运行程序时,它都消失了。PS:我正在使用SQLite管理器database@qce你想做什么和得到什么都不管用你需要发布的所有细节。除非我们说我们无法解决的代码。我只是告诉你preparedstatement的正确用法和executeUpdate()的用法。这与你发布的sql字符串的问题是一致的=“update maintable setİsim=”“+value1+”,Yaş=”“+value2+”,Konum=”“+value3+”,EPosta=”+value4+”,KatılımTarihi=“+value5+”,其中İsim=”“+value1+”,pst=conn.preparest陈述(sql);pst.executeUpdate();JOptionPane.showMessageDialog(null,“Güncellendi”);这两种方法都不起作用
 String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
                  pst=conn.prepareStatement(sql);
 pst=conn.prepareStatement("update maintable set İsim=?,Yaş=?,Konum=?,EPosta=?,KatılımTarihi=?"); pst.setString(1,value1);
pst.setString(2,value2);
pst.setString(3,value3);
pst.setString(4,value4);
pst.setString(5,value5);

pst.executeUpdate();