Avatar billede fastpoint Nybegynder
16. januar 2005 - 15:40 Der er 25 kommentarer og
1 løsning

Fejl i sql kode?

Vi har problemer med, at indsætte data i vores Access database. Ligger problemet i følgende kode?

      String stelnummer = t1.getText();    // Hent customer i TextField t1
      String bilmærke = t2.getText();    // Hent date i TextField t2
      String model = t3.getText();    // Hent name. i TextField t3
      int årgang = Integer.parseInt(t4.getText());
      String bremse = t5.getText();
      String fjedre = t6.getText();
      String dør = t7.getText();
      String fælge = t8.getText();
      String front = t9.getText();
      String køler = t10.getText();

      //Start.v6.t1.setText(stelnummer);
      //Start.v6.t2.setText(bilmærke);
      //Start.v6.t3.setText(model);
      //Start.v6.t4.setText(årgang);
      //Start.v6.t5.setText(bremse);
      //Start.v6.t6.setText(fjedre);
      //Start.v6.t8.setText(fælge);
      //Start.v6.t9.setText(front);
      //Start.v6.t10.setText(køler);


      SQL.executeUpdate("INSERT INTO profil (Bilmærke, Model, Årgang, Bremse, Fjedre, døre, Fælge, Front, Køler) VALUES('" + bilmærke + "', '" + model +"',' '+ årgang +', '" + bremse + "','" + fjedre + "','" + dør + "','" + fælge + "','" + front + "','" + køler + "')");


eller har vi glemt noget?
Avatar billede erikjacobsen Ekspert
16. januar 2005 - 15:42 #1
Hvad sker der? Jeg vil altid undgå æøå i feltnavne. Prøv evt [døre] ved dem.
Avatar billede fastpoint Nybegynder
16. januar 2005 - 15:43 #2
Vi får ingen fejlmeddelser, men vi tester lige...
Forresten kan vi godt tage information fra databasen! men ikke sætte ind og opdatere
Avatar billede fastpoint Nybegynder
16. januar 2005 - 15:45 #3
Vi har lige ændret det men det hjalp ikke... hvad kan det ellers være?
Avatar billede jakoba Nybegynder
16. januar 2005 - 15:46 #4
du bruger ikke 'stelnummer' til noget, og det kunne ellers nemt vær primærnøgle i sådan en tabel.
Avatar billede fastpoint Nybegynder
16. januar 2005 - 15:46 #5
ser sådan ud nu

String stelnummer = t1.getText();    // Hent customer i TextField t1
      String bilmærke = t2.getText();    // Hent date i TextField t2
      String model = t3.getText();    // Hent name. i TextField t3
      int årgang = Integer.parseInt(t4.getText());
      String bremse = t5.getText();
      String fjedre = t6.getText();
      String dør = t7.getText();
      String fælge = t8.getText();
      String front = t9.getText();
      String køler = t10.getText();

      //Start.v6.t1.setText(stelnummer);
      //Start.v6.t2.setText(bilmærke);
      //Start.v6.t3.setText(model);
      //Start.v6.t4.setText(årgang);
      //Start.v6.t5.setText(bremse);
      //Start.v6.t6.setText(fjedre);
      //Start.v6.t8.setText(fælge);
      //Start.v6.t9.setText(front);
      //Start.v6.t10.setText(køler);


      SQL.executeUpdate("INSERT INTO profil (Bilmaerke, Model, Aargang, Bremse, Fjedre, doore, Faelge, Front, Kooler) VALUES('" + bilmærke + "', '" + model +"',' '+ årgang +', '" + bremse + "','" + fjedre + "','" + dør + "','" + fælge + "','" + front + "','" + køler + "')");
Avatar billede erikjacobsen Ekspert
16. januar 2005 - 15:47 #6
Hvad gør I med exceptions?
Avatar billede fastpoint Nybegynder
16. januar 2005 - 15:47 #7
jakoba>> Det er netop primær! hvad skal vi gøre?
Avatar billede fastpoint Nybegynder
16. januar 2005 - 15:48 #8
erikjacobsen dem har vi ikke taget højde for endnu:/
Avatar billede erikjacobsen Ekspert
16. januar 2005 - 15:50 #9
Hvad gør I?
Avatar billede fastpoint Nybegynder
16. januar 2005 - 15:52 #10
hele metoden her

public void actionPerformed(ActionEvent e)
  {
    if(e.getActionCommand().equals("Tilbage"))    // der er klikket på ButtonText1
    {
      this.setVisible(false);
      Start.v2.setVisible(true);
      // Vindue som skal køre ved klik på "Tilbage"
    }
    else if(e.getActionCommand().equals("Hjem"))    // der er klikket på Buttontext2
    {
      this.setVisible(false);
      Start.v1.setVisible(true);
      // Vindue som skal køre ved klik på "Hjem"
    }
    else if(e.getActionCommand().equals("Ok"))    // der er klikket på Buttontext2
    {

      String stelnummer = t1.getText();    // Hent customer i TextField t1
      String bilmærke = t2.getText();    // Hent date i TextField t2
      String model = t3.getText();    // Hent name. i TextField t3
      int årgang = Integer.parseInt(t4.getText());
      String bremse = t5.getText();
      String fjedre = t6.getText();
      String dør = t7.getText();
      String fælge = t8.getText();
      String front = t9.getText();
      String køler = t10.getText();

      //Start.v6.t1.setText(stelnummer);
      //Start.v6.t2.setText(bilmærke);
      //Start.v6.t3.setText(model);
      //Start.v6.t4.setText(årgang);
      //Start.v6.t5.setText(bremse);
      //Start.v6.t6.setText(fjedre);
      //Start.v6.t8.setText(fælge);
      //Start.v6.t9.setText(front);
      //Start.v6.t10.setText(køler);


      SQL.executeUpdate("INSERT INTO profil (Bilmaerke, Model, Aargang, Bremse, Fjedre, doore, Faelge, Front, Kooler) VALUES('" + bilmærke + "', '" + model +"',' '+ årgang +', '" + bremse + "','" + fjedre + "','" + dør + "','" + fælge + "','" + front + "','" + køler + "')");
      //SQL.executeUpdate("UPDATE profil SET døre = 'dør'"); //(" + stelnummer + ", '" + bilmærke +"')");
      //SQL.executeUpdate("INSERT INTO profil SET døre = 'hej' WHERE døre = 'hallo'");
      //System.out.println("UPDATE profil SET døre = 'hej' WHERE døre = 'hallo'");
    //String cust = t1.getText();
      //Start.v5.t1.setText(cust);
      //this.setVisible(false);
      //Start.v5.setVisible(true);
      // Kode som skal køre ved klik på "Buttontext3"
    }

    //    .
    //    .
    else                                                // der er klikket på den sidste button
    {
      // Kode som skal køre ved klik på den sidste knap
    }
  }
Avatar billede erikjacobsen Ekspert
16. januar 2005 - 15:53 #11
Hvad sker der med exceptions i SQL.executeUpdate ?
Avatar billede fastpoint Nybegynder
16. januar 2005 - 16:01 #12
erikjacobsen vi har slet ikke taget højde for det hvad mener du? vi har ikke haft om det før. Hvad kan vi vise dig af kode?
Avatar billede erikjacobsen Ekspert
16. januar 2005 - 16:04 #13
Det er bare at SQL fejl skal give jer en SQLException, så I (og vi) kan se hvad der er galt. Det er hovedløs gerning at forsøge sig med SQL i Java uden at få det at vide.

Hvad er SQL for et objekt eller klasse?
Avatar billede fastpoint Nybegynder
16. januar 2005 - 16:12 #14
java.lang.NullPointerException
    at opretprofil2.actionPerformed(opretprofil2.java:165)
    at java.awt.Button.processActionEvent(Button.java:381)
    at java.awt.Button.processEvent(Button.java:350)
    at java.awt.Component.dispatchEventImpl(Component.java:3639)
    at java.awt.Component.dispatchEvent(Component.java:3480)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:197)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
Avatar billede fastpoint Nybegynder
16. januar 2005 - 16:15 #15
skal vi medtage

String stelnummer = t1.getText();    // Hent customer i TextField t1

i vores sql sætning?  hvis ja hvordan fungere det så
Avatar billede fastpoint Nybegynder
16. januar 2005 - 16:18 #16
dette er linje 165..
String stelnummer = t1.getText();

fjerner vi den får vi denne fejl


java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '' '+ årgang +', '1','2','4','4','1','1')'.
Avatar billede fastpoint Nybegynder
16. januar 2005 - 16:22 #17
SQL.executeUpdate("INSERT INTO profil (Bilmaerke) VALUES('" + bilmærke + "')");

virker godt! kan du sætte de andre ind?
Avatar billede arne_v Ekspert
16. januar 2005 - 16:32 #18
skal

SQL.executeUpdate("INSERT INTO profil (Bilmaerke, Model, Aargang, Bremse, Fjedre, doore, Faelge, Front, Kooler) VALUES('" + bilmærke + "', '" + model +"',' '+ årgang +', '" + bremse + "','" + fjedre + "','" + dør + "','" + fælge + "','" + front + "','" + køler + "')");

ikke være

SQL.executeUpdate("INSERT INTO profil (Bilmaerke, Model, Aargang, Bremse, Fjedre, doore, Faelge, Front, Kooler) VALUES('" + bilmærke + "', '" + model +"','" + årgang + "', '" + bremse + "','" + fjedre + "','" + dør + "','" + fælge + "','" + front + "','" + køler + "')");

?
Avatar billede arne_v Ekspert
16. januar 2005 - 16:32 #19
Jeg har sat nogle "" ind før og efter årgang ...
Avatar billede arne_v Ekspert
16. januar 2005 - 16:33 #20
Og jeg ville aldrig aldrig aldrig nogen sinde bruge ÆØÅ i felt navne.
Avatar billede fastpoint Nybegynder
16. januar 2005 - 16:35 #21
arne_v tak for det! det virker

men vores opdatering virker stadig ikke.. vi får følgende fejl

java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

koden er

else if(e.getActionCommand().equals("Ok"))    // der er klikket på Buttontext2
    {

      String stelnummer = t1.getText();    // Hent customer i TextField t1
      String bilmærke = t2.getText();    // Hent date i TextField t2
      String model = t3.getText();    // Hent name. i TextField t3
      String årgang = t4.getText();
      String bremse = t5.getText();
      String fjedre = t6.getText();
      String dør = t7.getText();
      String fælge = t8.getText();
      String front = t9.getText();
      String køler = t10.getText();

     

      SQL.executeUpdate("UPDATE profil SET Bremse = '"+bremse+"' Where Stelnr = '"+stelnummer+"'");

}


vi tester på bremse derfor de andre felter mangler
Avatar billede arne_v Ekspert
16. januar 2005 - 16:39 #22
Lyder som om stelnr feltet er et tal felt således at der skal bruges:

SQL.executeUpdate("UPDATE profil SET Bremse = '"+bremse+"' Where Stelnr = "+stelnummer);

(altså uden '' omkring)
Avatar billede erikjacobsen Ekspert
16. januar 2005 - 16:41 #23
Og hvis det er et tal, så husk at i den virkelige verden er et stelnummer ikke et tal ;)
Avatar billede fastpoint Nybegynder
16. januar 2005 - 16:44 #24
Det virker arne vi kigger sætter lige resten ind og tester:)
Avatar billede fastpoint Nybegynder
16. januar 2005 - 18:26 #25
Læg et svar arne og erikjacobsen tak for hjælpen! ved du ikke tager imod point:)
Avatar billede arne_v Ekspert
16. januar 2005 - 18:45 #26
svar
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