2017-11-25 12 views
0

削除ボタンに問題があります。テキストフィールドに何も入力せずに、削除ボタンを押すと、例外としてポップアップメニューが表示されません。ユーザーから空の入力が検出されないコード

private void billdeleteActionPerformed(java.awt.event.ActionEvent evt) { 
    // TODO add your handling code here: 
    try{ 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     int id=Integer.parseInt(billidtext.getText()); 
     try (//step2 create the connection object 
      Connection con = DriverManager.getConnection("jdbc:oracle:thin:localhost:xe","hr","****")) { 
      Statement stmt=con.createStatement(); 
      stmt = con.createStatement(); 
      String sql = "DELETE FROM bill " + 
      "WHERE bid = ('"+id+"')"; 
      int w=stmt.executeUpdate(sql); 
      if(w!=0) 
      JOptionPane.showMessageDialog(null,"Deleted Successfully!"); //this is displayed successfully 
      else 
      JOptionPane.showMessageDialog(null,"value does not exists!");// this is displayed successfully 
      supplieridtext.setText(""); 

      //view trigger 
      String sql1="SELECT * FROM bill"; 

      stmt = con.createStatement(); 

      ResultSet rs = stmt.executeQuery(sql1); 
      //STEP 5: Extract data from result set 
      billtable.setModel(DbUtils.resultSetToTableModel(rs)); 
      rs.close(); 

      //step5 close the connection object 
     } 
    }catch(ClassNotFoundException | SQLException e){ 
     JOptionPane.showMessageDialog(null,"no value entered!");} //this line is not displayed when the text field is empty 
} 
+0

'Integer.parseInt'が理解できない入力が与えられた場合に備えて、' java.lang.NumberFormatException'をキャッチする必要があるようです。 –

+0

'billidtext.getText()。trim()。isEmpty()' – MadProgrammer

答えて

2
if (!billidtext.getText().trim().isEmpty()) { 
    // Do query 
} 

すでに述べたように、それは「チェックされない例外」

if (!billidtext.getText().trim().isEmpty()) { 
    try { 
     int id=Integer.parseInt(billidtext.getText(); 
     // Do query 
    } catch (java.lang.NumberFormatException exp) { 
     JOptionPane.showMessageDialog(null,"Invalid value!"); 
    } 
} else { 
    JOptionPane.showMessageDialog(null,"no value entered!"); 
} 

あなたはまた、PreparedStatements

を利用してする必要がありますように、あなたは、 int id=Integer.parseInt(billidtext.getText());ため java.lang.NumberFormatException明示的にトラップする必要があります
関連する問題