Datenbank Zellen Inhalt an Methode übergeben?

Alex Großmann

Erfahrenes Mitglied
Hiho!

Ich bins (schon wieder), und habe (schon wieder) ein Problemchen ;)

Ich habe erfolgreich eine Verbindung zur Datenbank aufgebaut, nun will ich den Zellen Inhalt der Reihe nach auslesen und als String an eine andere Methode übergeben.
Der Inhalt besteht aus einer IP, und ich mag eben beide IP´s übergeben und dann Filtern und zu Integer umwandeln lassen.

Hier erstmal der Code:

Java:
 try
   	 {
	   Statement stmt = con.createStatement();
	   ResultSet rs = stmt.executeQuery("select * from IP");

   while(rs.next())
   {	           
   
	   ausgabe.append(rs.getString("ID"));
	   ausgabe.append("  ");
	   ausgabe.append(rs.getString("Netzanfang"));
	   
	   ausgabe.append(" - ");
	   ausgabe.append(rs.getString("Netzende"));
	   ausgabe.append("\n");
	   stringzuint(rs.getString("Netzanfang"), rs.getString("Netzende"));
   }
   	                  
   rs.close();
  
   stmt.close();
  
  }
   	         
   	 catch(Exception exce) {
   		exce.printStackTrace();
   	 }
   	 
	}
	;}
	 
	 /**
	  * Strings zu Ints umwandeln
	  */
	 static void stringzuint (String seg, String seg2){
		 
		 String[] segment = seg.split("\\.");
		 String[] segment2 = seg2.split("\\.");
		 int [] start=null;
		 int [] ende=null;
		 
		 start[0] = Integer.parseInt(segment[0]);
		 start[1] = Integer.parseInt(segment[1]);
		 start[2] = Integer.parseInt(segment[2]);
		 start[3] = Integer.parseInt(segment[3]);
		 
		 ende[0]= Integer.parseInt(segment2[0]);
		 ende[1]= Integer.parseInt(segment2[1]);
		 ende[2]= Integer.parseInt(segment2[2]);
		 ende[3]= Integer.parseInt(segment2[3]);
		 iphochzaehlen (start, ende); //übergabe an die nächste Methode die int arrays aufnimmt!


	 }
Mit folgender Zeile wollt ich den string an die Methode stringzuint übergeben...
Java:
 stringzuint(rs.getString("Netzanfang"), rs.getString("Netzende"));

Leider wirft er Folgende Exception, die ich nicht verstehe:
Java:
java.sql.SQLException: No data found
	at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
	at sun.jdbc.odbc.JdbcOdbcResultSet.getString(Unknown Source)
	at gui.actionPerformed(gui.java:379)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Grüße und Danke!
 
Zuletzt bearbeitet:
Tja .. wie es dir die Exception schon sagt : an der Stelle wo du versuchst auf Daten zuzugreifen gibt es scheinbar keine.
Genauer analysieren kann ichs leidern nicht.
Ich gebe dir noch einen Tipp für die GETTER : arbeite mit den Index-Werten anstatt mit den Spaltennamen da es leicht zu Problemen zwischen deiner App , dem JDBC-Driver und der Datenbank kommen kann.
 
Hiho good ol´ Spike :)

Also er gibt die IP Daten aus. So wie es da oben ist, gibt er 1 Spalte aus, dann hört er auf.

Was sind den die Index Werte? a, b, c ?!
Gruß
 
Hi,

manche Datenbanktreiber erlauben kein zweiten Zugriff auf die selbe Spalte des ResultSets. Versuch doch deinen Code so umzustricken, dass du nur einmal rs.getXXX für eine Spalte aufrufst.

Die Zeile
Code:
stringzuint(rs.getString("Netzanfang"), rs.getString("Netzende"));
ruft ja Daten ab die du vorher schon einmal abgerufen hast.
 
Huhu,

guter Ansatz, geht leider nicht :(
Auch die Daten in einen eignen Array zu speichern und dann zu übergeben funktioniert nicht :/

EDIT:
Moment, es tut sich was, kann doch sein das du recht hast! Hatte die ausgabe.rs... vorhin auskommentiert, nun mal komplett rausgenommen und es geht :)
 
Zuletzt bearbeitet:
Zurück