# Wo ist der Fehler?



## cam (1. Dez 2008)

Hallo,

vielleicht hab ich mal wieder Tomaten auf den Augen, aber ich finde den Fehler einfach nicht:


```
/**
 * Prüfen, ob in vorhandenen Datensätzen Lieferanten eingetragen sind
 */
String leer = "Muster";
try{
	PreparedStatement stmLief = (PreparedStatement) Frame.cn.prepareStatement("SELECT art_nr, lief2 FROM art_lief WHERE lief1 = ?");
	stmLief.setString(1, leer);
	Frame.rs = stmArt.executeQuery();
		
	if(Frame.rs.next()){
                String eins = Frame.rs.getString(1);
		String zwei = Frame.rs.getString(2);
		System.out.println(eins);
		System.out.println(zwei);
		Frame.mask5.setVisible(false);
		Frame.mask12.setVisible(true);
		System.out.println("Lieferant: ja");
	}
	else{
		System.out.println("Kein Lieferant");
	}
}catch(Exception ex){
	System.out.println("Keine Verbindung: " + ex);
}
```

Eigentlich wollte ich herausfinden, welcher Datensatz überhaupt einen Lieferanten hat, aber als das nicht ging, wollte ich versuchen, das genau andersherum anzugehen, also die herausfinden, die genau diesen Lieferanten haben.

Nach dem Code kommt als Fehlermeldung:

Der Index "2" liegt außerhalb des gültigen Bereichs.


----------



## @x.l (1. Dez 2008)

Nutze mal anstelle vom Index den Spalten-Namen.


----------



## SlaterB (1. Dez 2008)

was ist 'stmArt'? hat das was mit 'stmLief' zu tun?


----------



## maki (1. Dez 2008)

cam,

bei diesem JDBC Code solltest du dir unbedingt die JDBC basics aneignen bevor du noch mehr davon schreibst.


----------



## cam (1. Dez 2008)

Ich glaube, ich hatte etwas wenig Schlaf... solche blöden Schusselfehler...
Danke!


----------



## HoaX (1. Dez 2008)

ich vermisst vorallem auch noch das schließen des statements/resultsets. naja, nach ein paar selects wir ers schon merken


----------

