# Daten einer SQL-Datenbank aus Combobox in labels schreiben



## ElGomez (22. Jun 2012)

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:


```
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: 


```
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:


```
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


----------



## Gast2 (22. Jun 2012)

Du musst durch das ResultSet iterieren....


```
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


----------



## ElGomez (22. Jun 2012)

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 :

```
String mieterNr = (String) jComboBox.getSelectedItem();
```

Könntest du mir evtl. einen Tipp geben, wie du es machen würdest? 
Wär echt klasse


----------



## ssoul26 (22. Jun 2012)

Du bekommst eine "java.lang.NullPointerException". Die kannst du umgehen mit : 


```
if(jComboBox.getSelectedItem()!=null){

String mieterNr = (String) jComboBox.getSelectedItem();
}
```


----------



## ssoul26 (22. Jun 2012)

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?


----------



## ElGomez (22. Jun 2012)

Klasse vielen Dank jetzt hat es geklappt! 

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


----------



## ssoul26 (22. Jun 2012)

Geiz nicht mit den Abfragen auf !=null


----------

