Avatar billede aslan Nybegynder
04. juni 2002 - 15:40 Der er 9 kommentarer og
1 løsning

får kun første felt fra db?

Jeg har denne metode:

    public ResultSet søg(int gæsteNr,String navn,String efternavn,String adresse,int tlf )
    {
        return db.select("SELECT * FROM GAEST WHERE GAESTENR = '"+gæsteNr+"' OR NAVN = '"+navn+"' OR EFTERNAVN = '"+efternavn+"' OR ADRESSE = '"+adresse+"' OR    TLF = '"+tlf+"'");
    }
-----------------------------------------------------
der laver en query i min interbase.. denne metode kalder jeg så fra denne:

              try
                {
                              ResultSet row = hentGaest.søg(new Integer(gæstNr.getText()).intValue(),
                                              forNavn.getText(),
                                              efterNavn.getText(),
                                              adresse.getText(),
                                              new Integer(telefon.getText()).intValue());


                                  while(row.next())
                                  {
                                      felt.append(row.getObject(1)+"\n");
                                  }
                }
              catch(SQLException fejl)
              {
                  System.out.println(fejl);
              }

----------------------------------------------------

Men det eneste jeg får udskrevet af min søgning er index nummer på det jeg søger selvom jeg siger at det er objektet jeg vil hente: row.getObject(1)

Hvor i byen er jeg gået galt??
Avatar billede disky Nybegynder
04. juni 2002 - 18:10 #1
din while løkke er ikke komplet

Hvis vi siger din tabel indeholder

int(11)      ID
varchar(255) Navn
varchar(255) Adresse

ret til


while(row.next())
{
  int id=row.getInt("ID");
  String navn=row.getString("Navn");
  String adresse=row.getString("Adresse");
}

Som du kan se anvender jeg kolonne navne frem for deres nummer, det gir kode der er meget lettere at forstå, og fjerne mange chancer for fejl.
Avatar billede aslan Nybegynder
04. juni 2002 - 21:09 #2
hvis tlf feltet ikke bliver udfyldt får jeg en numberformat exception også stopper søgningen hvad kan jeg gøre ved det?
Avatar billede disky Nybegynder
05. juni 2002 - 02:37 #3
i din telefon.getText() metode skal du undersøger om feltet indeholder noget, hvis den ikke gør skal du sende den til en defautl værdi, f.eks. '0'.
Hvis der er noget som helst andet i det felt end tal, for du den exception (okay der må gåt være et '-' til at starte med)
Avatar billede aslan Nybegynder
05. juni 2002 - 12:20 #4
Det er det jeg har forsøgt mig med men kan ikke lige hitte ud af det,hvordan kan jeg kontrolere at en Jtextarea er sat?? Noget med tlf.isSet() ??
Avatar billede disky Nybegynder
05. juni 2002 - 17:08 #5
JTextArea jarea;

String text=jarea.getText();
if(text.length()==0)
{
text="0"; //default
}

nu kan du bruge den ovenstående. men husk hvis der er indtastet andet end

-0123456789

og - skal være først så får du en exception.
Avatar billede aslan Nybegynder
06. juni 2002 - 00:56 #6
disky jeg ved at du er haj til det her ... jeg har 2 tabeller jeg også skal have hentet fra afhængig af om type er 1 eller 0, men den brokker sig når jeg forsøger mig på denne måde?? 


void søgning()
    {
        ResultSet row,row2,row3;
        int type=0;

              try
                {


                              String nr=gæstNr.getText();
                              if(nr.length()==0)
                              {
                                  nr="0";
                              }

                              String nyTlf = telefon.getText();
                              if(nyTlf.length()==0)
                              {
                                  nyTlf="0";
                              }

                                        row = hentGaest.søg
                                              ( new Integer(nr).intValue(),
                                              forNavn.getText(),
                                              efterNavn.getText(),
                                              adresse.getText(),
                                              new Integer(nyTlf).intValue());

                                  while(row.next())
                                  {
                                      felt.append(row.getInt("GAESTENR")+"\n");
                                      felt.append(row.getString("NAVN")+"\n");
                                      felt.append(row.getString("EFTERNAVN")+"\n");
                                      felt.append(row.getString("ADRESSE")+"\n");
                                      felt.append(row.getInt("TLF")+"\n");
                                      felt.append(row.getInt("ANTALRESERVATION")+"\n");
                                      type = row.getInt("TYPEN");

                                  }
                                  if(type == 1)
                                  {
                                        row2=hentGaest.søgPrivat
                                        (new Integer(nr).intValue());

                                        felt.append(row2.getInt("NR")+"\n");


                                  }
                                  else if(type == 0)
                                  {
                                        row3=hentGaest.søgErhverv
                                        (new Integer(nr).intValue());

                                        while(row3.next())
                                        {
                                            felt.append(row.getString("FIRMA")+"\n");
                                            felt.append(row.getString("CVR")+"\n");
                                            felt.append(row.getInt("RABAT")+"\n");
                                        }
                                  }
                }
              catch(SQLException fejl)
              {
                  System.out.println(fejl);

              }
              catch(NumberFormatException fejl2)
              {
                  System.out.println(fejl2);

              }
    }
Avatar billede disky Nybegynder
06. juni 2002 - 07:43 #7
hvordan brokker den sig ?
Avatar billede aslan Nybegynder
06. juni 2002 - 09:51 #8
Den udskriver den første tabel som den skal men når typen er 1 og den skal udskrive tabel 2 skriver den:

Invalid operation to read at current curser position

Hvis typen er 0 og den skal udskrive tabel 3 skriver den:

invalid argument: Result column name FIRMA is not known
Avatar billede aslan Nybegynder
06. juni 2002 - 10:21 #9
ok det virker nu:)
Avatar billede aslan Nybegynder
06. juni 2002 - 10:24 #10
void søgning()
    {
        ResultSet row,row2,row3;
        int type=0;

              try
                {


                              String nr=gæstNr.getText();
                              if(nr.length()==0)
                              {
                                  nr="0";
                              }

                              String nyTlf = telefon.getText();
                              if(nyTlf.length()==0)
                              {
                                  nyTlf="0";
                              }

                                        row = hentGaest.søg
                                              ( new Integer(nr).intValue(),
                                              forNavn.getText(),
                                              efterNavn.getText(),
                                              adresse.getText(),
                                              new Integer(nyTlf).intValue());

                                  while(row.next())
                                  {
                                      felt.append(row.getInt("GAESTENR")+"\n");
                                      felt.append(row.getString("NAVN")+"\n");
                                      felt.append(row.getString("EFTERNAVN")+"\n");
                                      felt.append(row.getString("ADRESSE")+"\n");
                                      felt.append(row.getInt("TLF")+"\n");
                                      felt.append(row.getInt("ANTALRESERVATION")+"\n");
                                      type = row.getInt("TYPEN");

                                  }
                                  if(type == 1)
                                  {
                                        row2=hentGaest.søgPrivat
                                        (new Integer(nr).intValue());

                                        while(row2.next())
                                        {
                                        felt.append(row2.getInt("NR")+"\n");
                                        }


                                  }
                                  else if(type == 0)
                                  {
                                        row3=hentGaest.søgErhverv
                                        (new Integer(nr).intValue());

                                        while(row3.next())
                                        {
                                            felt.append(row3.getString("FIRMA")+"\n");
                                            felt.append(row3.getString("CVR")+"\n");
                                            felt.append(row3.getInt("RABAT")+"\n");
                                        }
                                  }
                }
              catch(SQLException fejl)
              {
                  System.out.println(fejl);

              }
              catch(NumberFormatException fejl2)
              {
                  System.out.println(fejl2);

              }
    }
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