Daten einer SQL-Datenbank aus Combobox in labels schreiben

  • Themenstarter Themenstarter ElGomez
  • Beginndatum Beginndatum
E

ElGomez

Gast
Hallo alle miteinander!
Ich bin neu hier und hoffe ihr könnt mir helfen 🙂
Folgender Sachverhalt: Ich möchte Daten aus einer Datenbank, die ich bereits mithilfe eines Vectors in die Combobox gebracht habe, mithilfe von "itemStateChanged" in labels schreiben.

So sieht meine Vector-Methode aus, die ich dann in der Combobox abrufe:

Java:
public Vector ladeDaten() {
		Vector vec_Daten = new Vector();
		
		
		try {
			aktuellerZugriff.oeffneDB();
			ResultSet rs = aktuellerZugriff.lesen("SELECT * FROM mieter ORDER BY MieterNr;");
		
			while(rs.next()){
				vec_Daten.add(rs.getString(1));
			}
            System.out.println(vec_Daten);
		} catch (Exception verbindung) {
			verbindung.printStackTrace();

		}
	
	    return vec_Daten;
	}

Dann noch alles in ein ResultSet schreiben:

Java:
String mieterNr = (String) jComboBox.getSelectedItem();
		
  	public ResultSet sucheMieter()
	{ String sql; 
	ResultSet rs; 
	sql = "SELECT MieterVN, MieterNN FROM mieter WHERE MieterNr = '" + mieterNr + "';"; 
	System.out.println(sql); //zum Testen
	rs = aktuellerZugriff.lesen(sql);
	return rs;
	}

Und anschließend der Combobox die Anweisungen geben:

Java:
jComboBox.addItemListener(new java.awt.event.ItemListener() {
				public void itemStateChanged(java.awt.event.ItemEvent e) {
					 ResultSet rs = sucheMieter();
					try
					{
					lbVorname.setText(rs.getString("MieterVN"));
					lbNachname.setText(rs.getString("MieterNN"));
					}
					catch(Exception err)
					{
						System.out.println("Fehler!");
					} 
				}

Hoffe ihr könnt mir sagen, wo mein Fehler liegt 😉
 
Du musst durch das ResultSet iterieren....

Java:
public void itemStateChanged(java.awt.event.ItemEvent e) {
                     ResultSet rs = sucheMieter();
                    try
                    {
                    rs.next(); // ersten Datensatz holen
                    lbVorname.setText(rs.getString("MieterVN"));
                    lbNachname.setText(rs.getString("MieterNN"));
                    }
                    catch(Exception err)
                    {
                        System.out.println("Fehler!");
                    } 
                }

Würde ich so aber eigentlich nicht machen, aber das ist eine andere Geschichte 😉
 
Vielen Dank für deine schnelle Antwort!
Habe es jetzt so probiert wie du gesagt hast, leider bringt er immer noch eine Fehlermeldung:

...
java.lang.reflect.InvocationTargetException
java.lang.NullPointerException
at paket_DatenbankCombobox.Hauptfenster2.<init>(Hauptfenster2.java:110)

Es scheint, als hätte er ein Problem mit der Zeile :
Java:
String mieterNr = (String) jComboBox.getSelectedItem();

Könntest du mir evtl. einen Tipp geben, wie du es machen würdest?
Wär echt klasse 🙂
 
Du bekommst eine "java.lang.NullPointerException". Die kannst du umgehen mit :

Java:
if(jComboBox.getSelectedItem()!=null){

String mieterNr = (String) jComboBox.getSelectedItem();
}
 
Erstell dir doch ein Mieter-Objekt, wo du alle Relevanten Daten hast, mit der ersten SQL instanziierst du dir deine Objekte. Anschliessend lädst du die in die Combobox. Da brauchst du die zusäztlichen SQL nicht jedesmal absetzen. Wie füllst du die ComboBox?
 
Klasse vielen Dank jetzt hat es geklappt! 🙂

Noch zu deiner letzten Frage ssoul26 :
Die Combobox fülle ich mit der Vector-Methode ladeDaten()
 

Zurück
Oben