M
Manuela
Gast
Hallo ich bekomme immer eine Fehlermeldung ind weiß nicht was ich hier falsch mache.
und hier der Code
Danke Manuela
SCHWERWIEGEND: null
java.sql.SQLException: Column index out of range.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSetMetaData.getField(ResultSetMetaData.java:398)
at com.mysql.jdbc.ResultSetMetaData.getColumnTypeName(ResultSetMetaData.java:290)
und hier der Code
Code:
public void select_datenbank(String sql){
try {
int aa=0;
Hashtable<Number, Hashtable<Object, Object>> tabelle =new Hashtable<Number, Hashtable<Object, Object>> ();
c = Konektor.Connector.getInstance().getConnection();
java.sql.ResultSet r = null;
r = c.createStatement().executeQuery(sql);
ResultSetMetaData rsmd = r.getMetaData();
while(r.next()) {
Hashtable<Object,Object> liste = new Hashtable<Object,Object>();
for (int i = 0; i <= rsmd.getColumnCount(); i++) {
if (rsmd.getColumnTypeName(i).toString().equals("INTEGER") ||
rsmd.getColumnTypeName(i).toString().equals("INTEGER UNSIGNED") ||
rsmd.getColumnTypeName(i).toString().equals("TINYINT")) {
liste.put(rsmd.getColumnName(i), r.getInt(rsmd.getColumnName(i)));
} else if (rsmd.getColumnTypeName(i).toString().equals("VARCHAR")) {
liste.put(rsmd.getColumnName(i), r.getString(rsmd.getColumnName(i)));
} else if (rsmd.getColumnTypeName(i).toString().equals("BIT")) {
liste.put(rsmd.getColumnName(i), r.getBoolean(rsmd.getColumnName(i)));
} else if (rsmd.getColumnTypeName(i).toString().equals("DOUBLE")) {
liste.put(rsmd.getColumnName(i), r.getDouble(rsmd.getColumnName(i)));
} else if (rsmd.getColumnTypeName(i).toString().equals("DATE")) {
liste.put(rsmd.getColumnName(i), r.getDate(rsmd.getColumnName(i)));
}
}
tabelle.put(aa, liste);
System.out.println(tabelle.get(aa));
aa++;
}
} catch (SQLException ex) {
Logger.getLogger("global").log(Level.SEVERE, null, ex);
}
}
Danke Manuela