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 
 
Forsvar & beredskab 
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
 
 
	
		
								
					
				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