无法更新和删除数据库中的数据

时间:2013-08-29 09:19:22

标签: java sql database sql-update

我正在尝试更新或删除数据库中的数据,但它无法正常工作。我不知道昨天晚上我做了什么,同时困难试图修复另一个问题。而现在这不起作用。这是他们两个的代码。那是我的问题所在。当我使用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单词,并说“找不到符号”

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=conn.prepareStatement(sql);

2 个答案:

答案 0 :(得分:0)

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.executeUpdate();// **error was here**

    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.executeUpdate();
              JOptionPane.showMessageDialog(null, "Güncellendi");



}catch(Exception e){;

        JOptionPane.showMessageDialog(null, e);


}
  Update_table();




    }          

要插入,更新删除,您应该调用 executeUpdate()而不是执行()

注意这不是使用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();

答案 1 :(得分:0)

使用pst.executeUpdate()代替pst.execute(),它会正常工作。

对于事务(INSERT,DELETE,UPDATE),请使用方法executeUpdate()。

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