-2

我正在尝试更新或删除数据库中的数据,但它不起作用。我不知道我昨天晚上在困倦的时候做了什么,试图解决另一个问题。现在这行不通了。这是他们两个的代码。我的问题在哪里。当我使用删除命令时,它正在更新但试图更新表,它不是在更新表。我的问题在哪里,我该如何解决?

 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);
4

2 回答 2

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()而不是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();
于 2013-08-29T09:21:40.680 回答
0

而不是 pst.execute() 使用 pst.executeUpdate() 然后它会正常工作。

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

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

于 2013-08-29T09:47:37.010 回答