Avatar billede mholst Nybegynder
28. november 2002 - 08:39 Der er 5 kommentarer og
1 løsning

For mange id'er

Vi kan nu udskrive id, men den udskriver mange flere tal end vi har. vi bruger denne kode:
public void hentId() throws SQLException {       
            String query = "SELECT id FROM PROFIL";
    ResultSet rs = stmt.executeQuery(query);
    while (rs.next()) {
    String s = rs.getString("id");
    System.out.println("BRUGERENS ID ER" + s);

Vi har kun tre rækker i "profil" og derfor burde den vel kun skrive tre id'er ud. Istedet skriver den:

BRUGERENS ID ER1
BRUGERENS ID ER2
BRUGERENS ID ER3
BRUGERENS ID ER4
BRUGERENS ID ER5
BRUGERENS ID ER6
BRUGERENS ID ER7
BRUGERENS ID ER8
BRUGERENS ID ER9
BRUGERENS ID ER10
BRUGERENS ID ER11
BRUGERENS ID ER12
BRUGERENS ID ER13
BRUGERENS ID ER14
BRUGERENS ID ER15
BRUGERENS ID ER16
BRUGERENS ID ER17
BRUGERENS ID ER18
BRUGERENS ID ER19
BRUGERENS ID ER20
BRUGERENS ID ER21
BRUGERENS ID ER22
BRUGERENS ID ER23
BRUGERENS ID ER24
BRUGERENS ID ER25
BRUGERENS ID ER26
BRUGERENS ID ER27
BRUGERENS ID ER28
BRUGERENS ID ER29
BRUGERENS ID ER30
BRUGERENS ID ER31
BRUGERENS ID ER32
BRUGERENS ID ER33
BRUGERENS ID ER34
BRUGERENS ID ER35
BRUGERENS ID ER36

.... og det er måske lidt vildt.
Hvad gør vi forkert?
Avatar billede christian-petersen Nybegynder
28. november 2002 - 08:44 #1
Du mangler en where clause på din sql sætning. F.eks:
select id from profil where username='myName';
Avatar billede christian-petersen Nybegynder
28. november 2002 - 08:44 #2
Med din nuværende forespørgelse får du id fra alle tubler i din tabel.
Avatar billede christian-petersen Nybegynder
28. november 2002 - 08:46 #3
Er du sikker på der ikke er flere end tre rækker? Og hvilken database benytter du?
Avatar billede themightygugi Nybegynder
28. november 2002 - 08:57 #4
Har du verificeret at en count(*) giver 3 (bemærk jeg har ændret koden men ikke testet den).

String query = "SELECT count(*) as idcount FROM PROFIL";
    ResultSet rs = stmt.executeQuery(query);
    rs.first();
    String s = rs.getString("idcount");
    System.out.println("ANTAL RÆKKER ER " + s);

Hvis den giver 3, kunne jeg tænke mig hvis du kunne vise mig create scriptet for tabellen (den SQL der lavede tabellen - sikkert noget i stil med "create table PROFIL  ... ect. ")
Avatar billede mholst Nybegynder
28. november 2002 - 09:21 #5
Vi er lidt i tvivl om hvad du mener med at verificere at count'en er 3.. Skal vi skrive det et sted?
Den giver ikke tre når den skriver ud, men ligger i stedet tre til, hver gan vi kører programmet.
Avatar billede disky Nybegynder
28. november 2002 - 09:22 #6
Selvfølgelig får du mere end 3 ud, du har jo mange flerer poster i tabellen.

Din tabel har 3 kolonner men mange poster.

Så alt virker som det skal.
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