E
ente382
Gast
Hallo,
ich sitze jetzt schon ne ganze weile daran und kann den Fehler nicht finden. wenn ich eine datenbankabfrage durchführe, liefert mir mein Resultset zwar die korrekte Reihenanzahl, jedoch wenn ich die einzelnen Werte in ein Array schreibe, wird immer die erste Reihe nicht in das Array eingetragen.
bspw. müsste das Ergebnis bei meiner Abfrage sein (IDs):
BA002
...
BA012
bei rows zeigt er 11 an,was auch stimmt. in die erste Reihe des Results(result[0]) kommen die Spaltennamen. Jedoch lässt er die letzte Zeile von result leer, weil er komischerweise das erste ergebnis nicht mit reinschreibt.
die Ausgabe sieht dann so aus:
BA003
...
BA012
Ich hab bestimmt nur irgenwo ne kleinigkeit übersehen...
danke für eure Hilfe!
ich sitze jetzt schon ne ganze weile daran und kann den Fehler nicht finden. wenn ich eine datenbankabfrage durchführe, liefert mir mein Resultset zwar die korrekte Reihenanzahl, jedoch wenn ich die einzelnen Werte in ein Array schreibe, wird immer die erste Reihe nicht in das Array eingetragen.
Code:
String sSql = sqlQuery;
Statement st = null;
ResultSet rs = null;
i = 0;
try
{
Class.forName(sDbDrv);
st = DriverManager.getConnection(sDbUrl, sUsr, sPwd).createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = st.executeQuery(sSql);
ResultSetMetaData rsmd = rs.getMetaData();
int cols = rsmd.getColumnCount();
int rows = 0;
while (rs.next())
{
rows++;
}
rs.first();
result = new String[rows + 1][cols];
for (i = 1; i <= cols; i++)
{
// Achtung: erste Spalte mit 1 statt 0
result[0][i - 1] = rsmd.getColumnName(i);
}
i = 1;
while (rs.next())
{
for (int j = 1; j <= cols; j++)
{
if ((j == 19 || j == 20) && (rs.getString(j) != null))
{
result[i][j - 1] = rs.getString(j).replace(',', '.');
}
else
{
result[i][j - 1] = rs.getString(j);
}
}
i++;
}
}
bspw. müsste das Ergebnis bei meiner Abfrage sein (IDs):
BA002
...
BA012
bei rows zeigt er 11 an,was auch stimmt. in die erste Reihe des Results(result[0]) kommen die Spaltennamen. Jedoch lässt er die letzte Zeile von result leer, weil er komischerweise das erste ergebnis nicht mit reinschreibt.
die Ausgabe sieht dann so aus:
BA003
...
BA012
Ich hab bestimmt nur irgenwo ne kleinigkeit übersehen...
danke für eure Hilfe!