08. december 2001 - 16:05
Der er
20 kommentarer og 1 løsning
Anvendelse af count
Hvordan får jeg dette resultat ud af resultSetog ind i en integer?? ResultSet rs=db.doQuery(\"select count(*) from kunder\") Jeg vil gerne vide hvor mange rækker min database indeholder, da jeg skal checke på om jeg står i den sidste række i databasen.
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
08. december 2001 - 16:11
#1
Hvorfor bruger du ikke: rs.isLast() for at checke om du er i sidste række istedet
08. december 2001 - 16:13
#2
og bruger du den i dit spørgsmål skal du bare aflæse felt nummer 0 i første række.
08. december 2001 - 16:21
#3
Hvis du endelig _vil_ gøre det sådan, kan du bruge noget denne retning (løst sammenklasket kode, ingen garanti for, at det virker): ResultSet rs=db.doQuery(\"select count(*) as antal from kunder\"); rs.next(); rs.getInt(\"antal\");
08. december 2001 - 16:22
#4
Det skal selvfølgelig være int antalKunder = rs.getInt(\"antal\");
08. december 2001 - 16:38
#5
Det virker stadig ikke. Skal jeg ikke gøre følgende?? ResultSet rs=db.doQuery(\"select count(*) from kunder\"); try { int tæller = rs.getInt(\"Count(*)\"); System.out.println(tæller); } catch...................
08. december 2001 - 16:42
#6
Hvis du vil referere til dit resultat med getInt, er det nemmeste at lave et alias for din count(*) - som i mit eksempel ovenfor med \"count(*) as antal\". Altså: ResultSet rs=db.doQuery(\"select count(*) as antal from kunder\"); try { int taeller = rs.getInt(\"antal\"); System.out.println(taeller); } catch................... Husk også rs.next() Men den nemmeste løsning på dit problem er nu stadig helt klart greybeards forslag.
08. december 2001 - 16:46
#7
og det jeg sagde var at uden omdøbning skriver man rs.getInt(0);
08. december 2001 - 17:23
#8
Skulle dette virke?? ResultSet rs = db.doQuery(\"select count(*) from kunder\"); try { int tæller = rs.getInt(0); System.out.println(tæller); } catch..............
08. december 2001 - 17:36
#9
du mangler rs.next() som lundsfryd også siger
08. december 2001 - 18:36
#10
Det driller! Nu har jeg prøvet med både count og rs.isLast(). Kan ikke få det til at virke. Ved brug af rs.isLast(), tror den altid at jeg er i den sidste række. public boolean checkNæste() { boolean result = false; try{ if (rs.isLast()) { System.out.println(i); result = true; } //else //result = false; }catch (SQLException e) { System.out.println(\"Fejl\"); } return result; } Jeg kalder denne metode anden steds fra således: if(kdf.checkNæste())
08. december 2001 - 18:37
#11
hov, jeg blev ikke færdig den returnerer altid true.
08. december 2001 - 18:39
#12
Måske jeg har misforstået nog, men dette virker heller ikke: ResultSet rs = db.doQuery(\"select count(*) from kunder\"); rs.next(); int tæller = rs.getInt(0); System.out.println(tæller);
08. december 2001 - 19:15
#13
Nå, ja ja, så tæller man fra 1 :) Dette er netop testet på en JSP-side: ResultSet rs2 = stm.executeQuery(\"select count(navn) from navne\"); rs2.next(); int tæller = rs2.getInt(1); out.println(tæller);
08. december 2001 - 19:55
#14
Det virker ikke. Jeg får fejl ved rs.next(), når jeg kører programmet, og udkommenterer jeg dette får jeg fejl ved rs.getInt(1) Jeg har importeret java.sql.*;
08. december 2001 - 20:06
#15
Nå, lad os så se din kode - det hele - og se præcis hvad den siger. Vi er ikke synske, så når du siger \"fejl\" kan det jo betyde hvad som helst
08. december 2001 - 20:18
#16
public static void main(String[] args) { Database db = new Database(); ResultSet rs = db.doQuery(\"select * from kunder\"); try { rs.next(); int tæller = rs.getInt(1); System.out.println(tæller); } catch (SQLException e) { System.out.println(\"Fejl\"); } db.close(); } Debugger kommer frem, så det er ikke en \"rigtig fejl\", men noget med uncaught exception, og Nullpointerexception.
08. december 2001 - 20:31
#17
\"noget med\" - altså, det gider jeg ikke. Kan du ikke fortælle hvad den siger der er galt kan jeg ikke hjælpe dig.
08. december 2001 - 21:12
#18
Men ok, lidt synske er vi da alligevel. Du har vist haft fingre i nogle klasser en eller anden tilfældig person har vist os her på eksperten. Men du bruger dem ikke korrekt. Og det er vist ikke noget du er blevet undervist i :) doQuery() returnerer null hvis du ikke har oprettet en connection. Og det ser det ikke ud til du har.
08. december 2001 - 22:13
#19
Har fundet ud af problemet....
08. december 2001 - 22:16
#20
Og det var?
08. december 2001 - 23:38
#21
Først og fremmest glemt open()- en rigtig dummefejl. Lave to metoder en som tæller antal rækker, og en som returnerer, om jeg står på den sidste række. Kunne ikke bruge isLast(), da den af en eller anden underlig grund \"går en længere\" end jeg har i tabellen.
Kurser inden for grundlæggende programmering