Avatar billede ff_j Nybegynder
22. november 2011 - 13:53 Der er 3 kommentarer og
1 løsning

Hente to rækker fra samme søjle???

Hey Eksperter

Jeg har et problem med at indlæse de sidste to rækker i den samme søjle.
Min kode er som følger:

ResultSet rset = stmt.executeQuery("SELECT tilstand FROM behandletdata WHERE cpr='" + cpr +"' ORDER BY tilstand DESC LIMIT 2;");
if (rset.next()){
                histDag1 = rset.getString(1);
                histDag2 = rset.getString(2);
}

Jeg får denne fejl meddelse:
java.sql.SQLException: Column Index out of range, 2 > 1.

Problemmet er at java tror jeg vil hente to strenge fra to forskellige søjler og dermed denne fejl meddelse, jeg vil gerne hente de  to strenge fra den samme søjle, hvad gør jeg?

MySQL koden virker når jeg kører den i navicat, men ikke i java.

På forhånd tak.
Avatar billede tjp Mester
22. november 2011 - 14:24 #1
rset.getString(1) henter første kolonne i dit resultatset; rset.getString(2) henter den anden, som ikke eksisterer...
Avatar billede tjp Mester
22. november 2011 - 14:26 #2
Hurtig, men knap så elegant løsning:

if (rset.next()){
                histDag1 = rset.getString(1);
}
if (rset.next()){
                histDag2 = rset.getString(1);
}
Avatar billede ff_j Nybegynder
22. november 2011 - 15:17 #3
Det er korrekt tjp,
og det virker.

Men findes der en mere elegant løsning?
Avatar billede tjp Mester
22. november 2011 - 15:58 #4
Well, if it works, don't fix it... ;-)

Det er sikker ok, men det skurrer lidt, når det samme (næsten) står der to gange.

Men der mangler lidt exception handling og sådan...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester