02. marts 2000 - 10:18
Der er
10 kommentarer og 2 løsninger
Stadig problemer med DB
Jeg får denne runtime fejl når jeg forsøger at indsætte i min DB. [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. Jeg skal have det her kode til at virke idag, er der nogen der kan hjælpe ? try { boolean space = false; String nr = CardPanel.list.getSelectedItem(); StringBuffer buffer = new StringBuffer(20); int i,j; for(i = 0,j = 1;!space;i++,j++) { if(!nr.substring(i,j).equals(" ")) { buffer.insert(i,nr.substring(i,j)); } if(nr.substring(i,j).equals(" ")) { space = true; } } nr = buffer.toString(); System.out.println(nr + " " + buffer.length());// skal væk senere //opret forbindelse Connection con = DriverManager.getConnection("jdbc:odbc:Rep"); Statement stmt = con.createStatement(); String query = "SELECT * FROM Kunder WHERE KundeNr LIKE nr"; ResultSet rs = stmt.executeQuery(query); int k = rs.getInt("KundeNr"); String f = rs.getString("Firmanavn"); String a = rs.getString("Adresse"); int p = rs.getInt("PostNr"); String b = rs.getString("Bynavn"); String t = rs.getString("Telefon"); String tf = rs.getString("Telefax"); String kp = rs.getString("KontaktPers"); String d = rs.getString("Dtlf"); String e = rs.getString("Email"); String w = rs.getString("WWW"); CardPanel.tfKundeNr.setText(Integer.toString(k)); CardPanel.tfFrmNvn.setText(f); CardPanel.tfAdr.setText(a); CardPanel.tfPstNr.setText(Integer.toString(p)); CardPanel.tfByNavn.setText(b); CardPanel.tfTlfNr.setText(t); CardPanel.tfTlfaxNr.setText(tf); CardPanel.tfKntPers.setText(kp); CardPanel.tfDirTlf.setText(d); CardPanel.tfEmail.setText(e); CardPanel.tfwww.setText(w); } catch(SQLException se) { System.err.println("Kunden blev ikke hentet."); System.out.println(se); System.exit(2); } Kobojt
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
02. marts 2000 - 13:51
#1
Jeg kan ikke se at du indsætter noget? Til gengæld er der noget galt med din SELECT: String query = "SELECT * FROM Kunder WHERE KundeNr LIKE nr"; Burde være: String query = "SELECT * FROM Kunder WHERE KundeNr LIKE " + nr; Der er tit en god ide at lave en System.out.println(query) så kan du se hvordan din SELECT ser ud og evt. prøve at køre den direkte i Access. /Jesper
02. marts 2000 - 14:08
#2
Hmm, det giver en ny fejl: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'KundeNr LIKE'. Så det kan ikke være rigtigt ? Kobojt
02. marts 2000 - 14:24
#3
Jeg tror det er et Access kursus du efterspørger: String query = "SELECT * FROM Kunder WHERE [Kunder.KundeNr] LIKE " + nr; Som jeg skrev tidligere, så prøv at køre din query i Access i stedet for via JDBC. Hvis du ikke kan få query'en til at køre, så brug query-builder'en i Access som hjælp. /Jesper
02. marts 2000 - 15:27
#4
Min sql-sætning fejler intet, den kører fint i acces query-builder. Jeg har lært at bruge access, har du ? Kobojt
02. marts 2000 - 15:38
#5
Undskyld jeg prøver at hjælpe. Har du prøvet at skrive "query" ud på skærmen? Det lyder som om "nr" ikke indeholder det du regner med. /Jesper
02. marts 2000 - 16:59
#6
Ok ok, du lød bare meget negativ. Det har jeg prøvet og det virkede fint. Jeg er sikker på at jeg fanger det rigtige. Kobojt
02. marts 2000 - 17:20
#7
Hmmm, jeg er ved at være løbet tør for idéer. Skal du bruge LIKE? Hvis du bare slår op på et tal (kundenr) så kan du vel nøjes med at bruge '=', fx. String query = "SELECT * FROM Kunder WHERE [KundeNr]=" + nr; /Jesper
03. marts 2000 - 08:00
#8
Du kunne godt lyde so om du har fat i noget. Det prøver jeg lige. Kobojt
03. marts 2000 - 08:22
#9
Hvis jeg gør som du foreslår får jeg denne runtimefejl: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'KundeNr ='. Jeg prøvede (...WHERE KundeNr = nr";), det resulterede i denne runtimefejl. [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. Vi må være tæt på at have været alle muligheder igennem. Du har ikke et sidste guldkorn til mig ? Kobojt
03. marts 2000 - 12:58
#10
Tjaa, jeg ved snart ikke. Jeg har antaget at KundeNr er et tal - er kolonnen defineret som "Number"? /Jesper
05. marts 2000 - 10:28
#11
det har du også ret i, det samme er gældende for postnr. Kobojt
cg
Nybegynder
06. marts 2000 - 00:37
#12
Hmmm. String query = "SELECT * FROM Kunder WHERE KundeNr LIKE nr"; Giver følgende SQL: SELECT * FROM Kunder WHERE KundeNr LIKE nr Altså "nr" og ikke indholdet af din variabel nr. Det du nok er interesseret i er noget i retning af f.eks. SELECT * FROM Kunder WHERE KundeNr = 7; Det laver du ved at skrive: String query = "SELECT * FROM Kunder WHERE KundeNr = " + nr + ";"; Læg mærke til det sidste ";", som ofte er nødvendigt. Jeg kan kun tilslutte mig jhh - Skriv query ud på skærmen. Det har ihvertfald ikke virket med den kode du listede i første indlæg. /Casper
Kurser inden for grundlæggende programmering