2017-03-24 1 views
0

Ich habe zwei JComboboxes A und B, also wenn ich ein beliebiges Element von A auswähle, dann sollten Werte, die sich auf das in A ausgewählte Element beziehen, JCombobox B ausfüllen. Ich habe das versucht, bekomme aber einen Fehler:JCombobox-Werte in Abhängigkeit von einer anderen JCombobox auffüllen

java.lang.ArrayIndexOutOfBoundsException: 0

bei pst.setString(1, client.getSelectedItem().toString());

try 
{ 
    String query="select `User_Name` from Client where `Client_Name`='?' "; 
    PreparedStatement pst=conn.prepareStatement(query); 
    pst.setString(1, client.getSelectedItem().toString()); 

    ResultSet rs=pst.executeQuery(); 

    user.addItem("--Select--"); 
    while(rs.next()) 
    { 
     user.addItem(rs.getString("User_Name"));    
    } 
//  return; 
    System.out.println(query); 

} 
catch(Exception g) 
{ 
    g.printStackTrace(); 
} 
+0

welcher Fehler erhalten Sie? In welchem ​​Kontext wird dieser Code ausgeführt? In einem Zuhörer? –

+0

ja, Sir, In itemListener ... bekomme Fehler ArrayIndexOutOfBoundsException bei Zeile pst.setString (1, client.getSelectedItem(). ToString()); .... aber wenn ich hardcoded String statt "?" so funktioniert es gut .... aber es ist nicht ziel – Vsal

+0

@hunter, hier ich hole client-name von db ... so für die auswahl dieses client-name aus combobox gibt '?' und den Wert weitergeben? und wenn ich 0 setze, dann ist der Fehler java.lang.ArrayIndexOutOfBoundsException: -1 – Vsal

Antwort

0

Die PresparedStatement nimmt den Parameter zu zitieren, wenn Sie setString verwenden()

Versuchen

String query="select User_Name from Client where Client_Name = ?"; 
PreparedStatement pst=conn.prepareStatement(query); 
pst.setString(1, String.valueOf(client.getSelectedItem())); 

Ich denke, dass, wenn Sie '?' die vorbereitete Anweisung verwenden dies nicht als Parameter zählt und das ist Warum erhalten Sie die IndexOutOfBounce

+0

@ Thomas..Okay danke..ich habe es jetzt versucht – Vsal

+0

Sir, vielen Dank :) es funktioniert – Vsal

0

Sie einen Fehler gemacht haben,

keine Notwendigkeit zu verwenden '?' , sollte es nur Client_Name = sein?

Verwandte Themen