neues DB-Problem

airliner

Erfahrenes Mitglied
Und wieder ich, diesmal mit einer DB-Abfrage ohne GUI.

Die verbindung klappt soweit ganz gut, doch jetzt wirft Eclipse
Fehler bei Abfrage java.sql.SQLException: Ungültiger Spaltenindex
aus.

Hier der Quellcode:
Code:
import java.sql.*; 


class einwahlauslese{

	public static void main(String[]arguments) {
		Connection con = null;
		Statement stmt;
		ResultSet result;
		String db_Url = "jdbc:oracle:thin:@kmmaster-ts:1521:XE";
		String db_UserName = "xxxx";
		String db_UserPw = "zzzz";
	
	
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			}
			catch (Exception e) {
				System.out.println("Treiber konnte nicht gefunden werden "+e);
			}

			try{
				con = DriverManager.getConnection(db_Url, db_UserName, 
						db_UserPw);
				}
				catch (Exception e) {System.out.println("Keine Verbindung "+e);
				}
				try{
					stmt=con.createStatement();
					String sqlQuery = "SELECT * FROM action";
					result = stmt.executeQuery(sqlQuery);
					while(result.next()){
						System.out.println(result.getString(3)+"\n" + result.getString(10));}
				} catch (Exception e){
					System.out.println("Fehler bei Abfrage "+e);
				}

				if(con!=null){
					try{
						con.close();
					}catch(Exception e){
						System.out.println("Verbindung kann nicht getrennt werden "+e);
					}
				}
				else{
					System.out.println("Verbindung bereits getrennt");
				}
		}
	}

Die ausprobierten Tabellen sind alle angelegt und ich kann auch direkt drauf zugreifen (über meinen anderen Account).

Irgendwie krieg ich das nich gebacken.

Freue mich auf Antworten.
 
ja, hab die werte auch mehrmals angepasst, aber es kommt jedes mal das selbe bei raus...

Die jetztige Tabelle hat drei Spalten und 19 Zeilen
 
ja also 3 Spalten und du versuchst auf die 10 zuzugreifen
Java:
System.out.println(result.getString(3)+"\n" + result.getString(10));}

Die es ja nicht gibt oder hab ich jetzt selbst einen Dreher im Kopf ...

Mach mal bei deiner Foreach schleífe result.getString(10) raus und schau obs läuft
Java:
System.out.println(result.getString(3));}

Hoffe konnte helfen
 
Zuletzt bearbeitet:
3 Spalten?
Mit result.getString(10) versuchst du aber auf die 11. Spalte zuzugreifen.
Und 11 nun mal grösser als 3.

Uups, da war wohl eine schneller...
 
Du hast ja auch recht, ich hatte die Werte nicht angepasst gehabt, als ich den Code hier reingestellt hab.

aber auch bei
Code:
System.out.println(result.getString(3)+"\n" + result.getString(19));}
oder:
Code:
System.out.println(result.getString(19)+"\n" + result.getString(3));}
wills nich klappen...

Und die Werte sollten ja nun pasen oder?

Ok, Leroux.

hab's jetzt geändert und es funktioniert so...
Vielen Dank!
 
Zuletzt bearbeitet:
Schnell mal was neben bei ich glaub ResultSet nimmt er doch die erste Spalte als 1 nicht wie bei einem Array als 0


nein

du hast nur 3 Spalten ! nur 3 nicht 11 nicht 19 drei
 
Also result.getString(10) liefert nicht die 10 Zeile, sondern die 11 Spalte.
Also auch wenn du 1000 Zeilen hättest und nur 3 Spalten wird diese Fehlermeldung kommen.

edit: ...Verdammt, schon wieder langsamer :-(
 
Zuletzt bearbeitet:
Bei eurer Geschwindigkeit muss man ja verdammt aufpassen, dass man sich nicht verhaspelt, aber danke Jungs(!)

Wie gesagt, Problem is behoben...
 
Zurück