-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

pst.execute() の代わりに pst.executeUpdate() を使用すると、正常に動作します。

トランザクション (INSERT、DELETE、UPDATE) には、executeUpdate() メソッドを使用します。

データの選択 (SELECT) には、executeQuery() を使用します。

于 2013-08-29T09:47:37.010 に答える
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();




    }          

挿入、更新、削除の場合は、execute()ではなく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();
于 2013-08-29T09:21:40.680 に答える