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??
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
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.
hvis tlf feltet ikke bliver udfyldt får jeg en numberformat exception også stopper søgningen hvad kan jeg gøre ved det?
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)
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() ??
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.
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); } }
hvordan brokker den sig ?
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
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); } }
Kurser inden for grundlæggende programmering