2017-02-12 2 views
0

J'essaie de récupérer les détails d'un seul dossier patient parmi les enregistrements que j'avais précédemment ajoutés dans ma base de données Oracle 10g, en utilisant l'entrée comme attribut de numéro de téléphone. c'est-à-dire que je veux obtenir des détails sur un seul enregistrement en utilisant son numéro de téléphone. attribut.NumberFormatException dans le projet Java

Mais je reçois un NumberFormatException lorsque je clique sur le bouton. Le actionPerformed pour ce bouton est ici:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     try{ 
     Connection con = null; 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","passw"); 

     String number = jTextField1.getText().trim(); /fetching the input here*/ 

     int phone = Integer.parseInt(number);/*converting string to integer*/ 


     PreparedStatement ps = con.prepareStatement("SELECT * FROM patient WHERE pphone==?"); 

        ps.setInt(1,phone); 

     ResultSet rs=ps.executeQuery(); 
        jLabel16.setText("Fetching details, please wait"); 
        jLabel2.setText(rs.getString("pid")); 
        jLabel3.setText(rs.getString("pname")); 
        jLabel4.setText(rs.getString("page")); 
        jLabel5.setText(rs.getString("psex")); 
        jLabel6.setText(rs.getString("pphone")); 
        jLabel7.setText(rs.getString("paddress")); 
        jLabel8.setText(rs.getString("pfamilymembers")); 
        jLabel16.setText("Details Fetched Successfully"); 
}           
catch(Exception e){ 
showMessageDialog(null, e); 
} 

J'ai essayé des réponses de discussions précédentes, mais ils n'a pas aidé.

Comment puis-je éviter ou gérer cette exception?

+0

Imprimer la trace de la pile de la exception. Cela vous dira où l'exception est lancée, et quel est son message. Ensuite, lisez-le et corrigez votre code en conséquence. –

+0

@Natarajan sur quelle ligne est-ce une erreur de lancement? –

+0

Je reçois l'exception ici ... int phone = Integer.parseInt (number); J'avais l'habitude d'obtenir cette exception dans le volet de sortie dans Netbeans. Maintenant, je reçois l'exception dans la boîte de dialogue de l'optionpane lorsque j'exécute le Jframe. –

Répondre

0

est-il une chance de votre entrée est supérieure à Integer.MAX_VALUE si vous pouvez utiliser si Long.parseLong("String")

0

vous ne pouvez pas l'éviter. la valeur est importante pour le dernier code après

int phone = Integer.parseInt(number);/*converting string to integer*/ 

Vous devriez vérifier/valider les valeurs d'entrée avant de les passer dans le contexte.

int phone = -1 
if (!String.isEmpty(number)) 
    //proceed 
    try { 
     phone = Integer.parseInt(number);/*converting string to integer*/ 
     .... 
    } catch (NumberFormatException e){ 
    throw new Exception("Number is invalid", e); 
    } 
else 
    throw new Exception ("Number is empty"); 
0

Le code fonctionne maintenant avec succès,

je passai la valeur JTextField dans la variable "String" au lieu de int en utilisant la méthode "valueOf (int)"

String number = String.valueOf(getText.jTextField1);