Quote Originariamente inviata da andbin Visualizza il messaggio
Se ci sono 7 '?' .... l'indice 8 non ci sta ....

E comunque se in una insert non metti tutti i campi, ne salti alcuni o non li metti nell'ordine di dichiarazione nella tabella, allora dovresti elencare nell'insert i nomi delle colonne.
Dunque, ho controllato il database e la struttura č questa:

codice:
ID NOME COGNOME LISTA DATA ORA TOTALE CONSEGNATA NUMERO
Dove numero č un campo che ho definito incrementale come nella guida che andbin mi ha linkato, quindi con questa istruzione e non ci sono stati errori:

codice:
  st.executeUpdate("CREATE TABLE TABELLA_PRENOTAZIONI" + "(ID VARCHAR(30), " + " NOME VARCHAR(30) NOT NULL, " +" COGNOME VARCHAR(30) NOT NULL, "+"LISTA VARCHAR(60),"+"DATA VARCHAR(8),"+"ORA VARCHAR(5),"+"TOTALE DOUBLE,"+"CONSEGNATA VARCHAR(2),"+"NUMERO INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), "+"PRIMARY KEY(ID,DATA))");
Per inserire una prenotazione di una pizza nel database c' č questo metodo dove non ho inserito il parametro NUMERO visto che č incrementale, quindi:

codice:
public void addPrenotazione(String id,String nome, String cognome,              String lista, String data, String ora, String consegnata){
         
        try{ 
           DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
           Connection conn = DriverManager.getConnection(url, user, pwd);
           
           double totale=0;
           StringTokenizer str=new StringTokenizer(lista,", ");
           
            while (str.hasMoreTokens()) {
                totale+=totale+getPrezzo(str.nextToken());
            }
            
         
          String sql = "INSERT INTO TABELLA_PRENOTAZIONI VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
            PreparedStatement prepStat = conn.prepareStatement(sql);
            prepStat.setString(1, id);
            prepStat.setString(2, nome);
            prepStat.setString(3, cognome);
            prepStat.setString(4, lista);
            prepStat.setString(5, data);
            prepStat.setString(6, ora);
            prepStat.setDouble(7, totale);
            prepStat.setString(8, consegnata);
            
            
         
            prepStat.executeUpdate();
    
            prepStat.close();
            conn.close();
     
     
     }
      catch(SQLException e){System.out.println(e.getMessage());}
        
     }
Perņ non funziona...