2016-11-06 12 views
0
private void deleteActionPerformed(java.awt.event.ActionEvent evt) { 
    // TODO add your handling code here: 

    try { 
     // String sql = "Delete from tender.bidder where b_id =" + bidtxt.getText(); 
     PreparedStatement pstmt = con.prepareStatement("delete from tender.bidder where bidder.b_id =" + bidtxt.getText()); 
     int i = pstmt.executeUpdate(); 
     System.out.print(i + "record deleted"); 
     con.close(); 
     bidtxt.setText(""); 
     bnametxt.setText(""); 
     officetxt.setText(""); 
     streettxt.setText(""); 
     citytxt.setText(""); 
     statetxt.setText(""); 
     contacttxt.setText(""); 
     passwordtxt.setText(""); 
     emailtxt.setText(""); 
     tidtxt.setText(""); 
     con.close(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
    selectionall(); 

} 

を削除する必要がある値であることを考えていますFROMリスト内の表、または結合仕様内に現れ、結合仕様の範囲外であるか、またはHAVING節に現れ、GROUP BYリストに含まれていない表。これがCREATEまたはALTER TABLEステートメントの場合、 'B001'はターゲット表の列ではありません。私のNetBeansはテキストフィールドに入力された値は、列名ではなく、私はそれがエラーを

+2

do *** NOT ***はSQL文字列に値を連結します。 'PreparedStatement'を正しく使う方法を学びましょう - エラーもまた消える副作用として。 –

答えて

0

PreparedStatementは適切に使用されていません。あなたの値があると思われる?を使用します。しかし、構文エラーの原因となっている文の中の文字列の周囲に必要な引用符もありません。

// Proper PreparedStatement example. 
PreparedStatement pstmt = con.prepareStatement("DELETE FROM tender.bidder WHERE bidder.b_id = ?"); 
pstmt.setString(1, bidtxt.getText()); 
int i = pstmt.executeUpdate(); 

// String values need '' quotes. 
Statement s = con.createStatement(); 
s.executeUpdate("DELETE FROM tender.bidder WHERE bidder.b_id = '"+bidtxt.getText()+"'"); 
+0

本当にありがとうございます。それはたくさんのことを意味しています。 – molesterman69

関連する問題