Avatar billede itpigen Nybegynder
16. januar 2005 - 21:38 Der er 36 kommentarer

Fejl i sql kode?

Vi skal hente nogle data fra Acces database
og der er noget der går galt men da oplysningerne ikke vises i listboxen og der meldes ingen fejl..
Hvad skyldes det?

Koden:

else if (e.getActionCommand().equals("Se fjernet reservedele")) // der er klikket på Buttontext2
      {
        SQL.executeQuery("SELECT* FROM Profil2"); // forventer kun en record
        List2.removeAll();
          while (SQL.next())
          {
            String stelnummer = SQL.getString(1);
            String bilmærke = SQL.getString(2);  // få fat i strengen i søjle 2
            String model = SQL.getString(3);
            String årgang = SQL.getString(4);
            //String bremse = SQL.getString(5);
            //String fjedre = SQL.getString(6);
            //String dør = SQL.getString(7);
            //String fælge = SQL.getString(8);
            //String front = SQL.getString(9);
            //String køler = SQL.getString(10);

            List2.add("Stelnummer "+stelnummer+", Bilmærke "+bilmærke+", Model "+model+", Årgang "+årgang+"");
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 21:47 #1
Har du tjekket at du overhovedet kommer ind i din 'else if' sætning ?
Avatar billede itpigen Nybegynder
16. januar 2005 - 21:55 #2
ja det gør vi
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:00 #3
Hmmm - nu ved jeg ikke lige hvad SQL er en instans af?

Men executeQuery på et Statement returnerer et ResultSet som man så løber igennem (normalt).

Så normalt vil jeg gøre noget a la:

else if (...)
{
  ResultSet set = stm.executeQuery(sql);
 
  while (set.next())
  {
      //...
  }
}
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:03 #4
det har vi også gjort

Koden er:

else if (e.getActionCommand().equals("Se fjernet reservedele")) // der er klikket på Buttontext2
      {
        SQL.executeQuery("SELECT* FROM Profil2"); // forventer kun en record
        List2.removeAll();
          while (SQL.next())
          {
            String stelnummer = SQL.getString(1);
            String bilmærke = SQL.getString(2);  // få fat i strengen i søjle 2
            String model = SQL.getString(3);
            String årgang = SQL.getString(4);
            String bremse = SQL.getString(5);
            String fjedre = SQL.getString(6);
            String dør = SQL.getString(7);
            String fælge = SQL.getString(8);
            String front = SQL.getString(9);
            String køler = SQL.getString(10);

            //List2.add("Stelnummer "+stelnummer+", Bilmærke "+bilmærke+", Model "+model+",    Årgang "+årgang+"");
            List2.add("Stelnummer "+stelnummer+", Bilmærke "+bilmærke+", Model "+model+", Årgang "+årgang+", Bremse "+bremse+", Fjedre "+fjedre+", Dør "+dør+", Fælge "+fælge+", Front "+front+", Køler "+køler+"");
            }
      }
Avatar billede kalp Novice
16. januar 2005 - 22:03 #5
opret en jLabel... og prøv dette...

String samlet = "";

else if (e.getActionCommand().equals("Se fjernet reservedele")) // der er klikket på Buttontext2
      {
        SQL.executeQuery("SELECT* FROM Profil2"); // forventer kun en record
        List2.removeAll();
          while (SQL.next())
          {
samlet += SQL.getString(1);
samlet += SQL.getString(2);
samlet += SQL.getString(3);
samlet += SQL.getString(4);
samlet += SQL.getString(5);
samlet += SQL.getString(6);
samlet += SQL.getString(7);
samlet += SQL.getString(8);
samlet += SQL.getString(9);
samlet += SQL.getString(10);

jLabel.setText(samlet);
List2.add(jLabel);
Avatar billede kalp Novice
16. januar 2005 - 22:06 #6
Min pointe er, at listboxen hos kræver et komponent(ikke sikkert hos jer men vi tester også bare)
Så en string går ikke, men en Jlabel går:)

så må vi håbe at det er det.
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:06 #7
Nej, det er ikke det I har gjort. Kan I ikke fortælle hvad SQL er en instans af? I har både executeQuery() og next() hægtet på jeres SQL instans.
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:07 #8
problemet er at vi har hentet informationer fra den en database
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:08 #9
>>kalp

Som default bliver en String smidt ind i et JLabel, når du tilføjer noget til
en JList.
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:08 #10
Og det virker

Vi bruger hermed samme metode, men der virker den så ikke. Det kan vi overhvoedet ikke forstå
Avatar billede kalp Novice
16. januar 2005 - 22:08 #11
mikkelbm>> Det kommer måske an på værktøjet.. hvad bruger du? jDev brokker sig over en string
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:09 #12
¨nej vi bruger JBuilder9
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:12 #13
Denne SQL kode virker og det er nøjagtig samme SQL som vi prøver at genbruge, hvor vi har oprettet to databaser der indeholder det samme

SQL koden som virker er følgende:

else if (e.getActionCommand().equals("Se profiler")) // der er klikket på Buttontext2
      {
        SQL.executeQuery("SELECT* FROM Profil"); // forventer kun en record
        List1.removeAll();
          while (SQL.next())
          {
            String stelnummer = SQL.getString(1);
            String bilmærke = SQL.getString(2);  // få fat i strengen i søjle 2
            String model = SQL.getString(3);
            String årgang = SQL.getString(4);
            String bremse = SQL.getString(5);
            String fjedre = SQL.getString(6);
            String dør = SQL.getString(7);
            String fælge = SQL.getString(8);
            String front = SQL.getString(9);
            String køler = SQL.getString(10);

            List1.add("Stelnummer "+stelnummer+", Bilmærke "+bilmærke+", Model "+model+", Årgang "+årgang+", Bremse "+bremse+", Fjedre "+fjedre+", Dør "+dør+", Fælge "+fælge+", Front "+front+", Køler "+køler+"");
            }
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:13 #14
Denne kode virker. Denne kode kommer ind i listboxen. Dvs. den gør nøjagting som vi vil have den til.
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:14 #15
Så må det jo være fordi i ikke har fyldt de rigtige data i den anden database.
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:15 #16
Rettelse:

database skal nok være tabel

For hvis I skal ha' fat i en hel anden database, skal i jo huske ogsa at connecte til den.
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:16 #17
Vi har de samme data i begge databaser på nær at i den ene database er der 0 værdier. Det er denne database vi ikke kan hente dataen fra.
Men begge databaser har nøjagtig de samme string overskrifter
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:16 #18
undskyld vi mener tabel
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:17 #19
vi mener to tabeller istedet for to databaser
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:17 #20
kalp>>

Hvis det er en JList der er tale om, plejer jeg at bruge en ListModel - som regel DefaultListModel, som har en add metode der tager imod en String.
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:20 #21
Hvis den ene virker, må den anden jo nødvendigvis også virke. Jeg tror altså stadig problemet ligger i, at der ikke er noget data i tabel: Profil2

Og hvis det ikke er problemet, må jeg stå af.
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:20 #22
mikkelbm>>>

SQL koden der er en første SQL kode jeg sendte tidligere. Den eneste forskel er at dataen skal hentes fra en anden tabel og skal indsættes i List-box 2
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:22 #23
Ja, men det jeg siger er, at jeg ikke tror problemet ligger i jeres kode - men at der ikke er de rigtige data i Profil2
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:23 #24
Kan problemet evt ligge i at:

- det er nul-værdier der er i tabellen og skal hentes?

- eller evt. at vi har 2 forskellige listbox på samme vindue?
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:25 #25
Hvis der ikke er nogle værdier i Profil2 - er der jo intet at vise i jeres listbox!
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:26 #26
Vores kode ser således ud:
Det der skal udføres er at der er 2 listbox på ét vindue, og der er to tabeller de hver især henter deres data fra. Det eneste forskel er at i den ene tabel er der nulværdier, mens at der i det andet er nogle andre tal.
Den første listbox virker, men det andet virker ikke og der dukker intet op på listboxen.
public void actionPerformed(ActionEvent e)
    {
      if (e.getActionCommand().equals("Hjem"))
      { // der er klikket på Buttontext2
        List1.removeAll();
        this.setVisible(false);
        Start.v1.setVisible(true);
        // Vindue som skal køre ved klik på "Hjem"
      }
      else if (e.getActionCommand().equals("Se profiler")) // der er klikket på Buttontext2
      {
        SQL.executeQuery("SELECT* FROM Profil"); // forventer kun en record
        List1.removeAll();
          while (SQL.next())
          {
            String stelnummer = SQL.getString(1);
            String bilmærke = SQL.getString(2);  // få fat i strengen i søjle 2
            String model = SQL.getString(3);
            String årgang = SQL.getString(4);
            String bremse = SQL.getString(5);
            String fjedre = SQL.getString(6);
            String dør = SQL.getString(7);
            String fælge = SQL.getString(8);
            String front = SQL.getString(9);
            String køler = SQL.getString(10);

            List1.add("Stelnummer "+stelnummer+", Bilmærke "+bilmærke+", Model "+model+", Årgang "+årgang+", Bremse "+bremse+", Fjedre "+fjedre+", Dør "+dør+", Fælge "+fælge+", Front "+front+", Køler "+køler+"");
            }

      // Vindue som skal køre ved klik på "Hjem"

      }
      else if (e.getActionCommand().equals("Se fjernet reservedele")) // der er klikket på Buttontext2
      {
        SQL.executeQuery("SELECT* FROM Profil2"); // forventer kun en record
        List2.removeAll();
          while (SQL.next())
          {
            String stelnummer = SQL.getString(1);
            String bilmærke = SQL.getString(2);  // få fat i strengen i søjle 2
            String model = SQL.getString(3);
            String årgang = SQL.getString(4);
            String bremse = SQL.getString(5);
            String fjedre = SQL.getString(6);
            String dør = SQL.getString(7);
            String fælge = SQL.getString(8);
            String front = SQL.getString(9);
            String køler = SQL.getString(10);

            //List2.add("Stelnummer "+stelnummer+", Bilmærke "+bilmærke+", Model "+model+", Årgang "+årgang+"");
            List2.add("Stelnummer "+stelnummer+", Bilmærke "+bilmærke+", Model "+model+", Årgang "+årgang+", Bremse "+bremse+", Fjedre "+fjedre+", Dør "+dør+", Fælge "+fælge+", Front "+front+", Køler "+køler+"");
            }
      }
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:28 #27
vi mener at der er 0'taller
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:28 #28
Vi bliver åbenbart ved med at tale forbi hinanden!?

Når I skriver nul-værdier - hvad mener I så???

Jeg forstår det sådan, at der ikke er noget som helst data i Profil2

Og hvis det er tilfældet, kan den jo af gode grunde ikke vise noget i jeres 2. listbox!
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:29 #29
Ahh - okay - så er jeg med :)
Avatar billede mikkelbm Nybegynder
16. januar 2005 - 22:30 #30
Så er jeg blank! Desværre
Avatar billede itpigen Nybegynder
16. januar 2005 - 22:35 #31
okay :) vi må bare prøve os frem. tak for hjælpen alligevel!
Avatar billede supa Nybegynder
18. januar 2005 - 11:37 #32
Prøv at lade være med at bruge 'æ', 'ø' og 'å' i variabler, eller bare generelt i programmering, da disse ikke er internationalt anvendte chars..

Brug f.eks. istedet 'ae', 'oe' eller 'aa'..

Eller som jeg gør, så bruger jeg engelske navne..
Avatar billede mikkelbm Nybegynder
18. januar 2005 - 11:42 #33
supa>>

Det er jo så nok ikke det der er problemet i og med, at den ene metode virker, men den anden ikke gør!
Avatar billede mikkelbm Nybegynder
25. januar 2005 - 18:32 #34
itpigen >> Fandt I en løsning?
Avatar billede itpigen Nybegynder
25. marts 2006 - 22:38 #35
læg et svar mikkelbm
Avatar billede mikkelbm Nybegynder
25. marts 2006 - 23:52 #36
Kommer her...
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