Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di nicola
    Registrato dal
    May 2007
    Messaggi
    86

    [java] eccezione non compresa

    sapreste dirmi che tipo di errore mi rileva questa eccezione?
    il codice è:
    codice:
    public boolean addTransazione(int IDconto, int TipoOp, Object dataOp, float ammontare)
    	throws SQLException, ClassNotFoundException 
    	{	System.out.println("inizio la transazione...");
    		boolean inserisci = false;
    		Connection conn = null;
    		String statement = "INSERT INTO TRANSAZIONI VALUES (?, ?, ?, ?)";  
    		String connessione = connessioneDB();
    		conn = (Connection) DriverManager.getConnection(connessione);
    		Class.forName("com.mysql.jdbc.Driver");        
    		PreparedStatement stmt = conn.prepareStatement(statement);
    		stmt.setInt		(1, IDconto);
    		stmt.setInt		(2, TipoOp);
    		stmt.setFloat  	(3, ammontare);
    		stmt.setObject	(4, dataOp);		
    		stmt.executeUpdate();
    		stmt.close();
    connessioneDB è il meodo che mi restituisce la stringa di connesione al db...

    a questo metodo viene passato:
    codice:
    Object data= new java.util.Date();
    		addTransazione(0,1,data,25);
    mi da questo errore...
    codice:
    java.sql.SQLException: Column count doesn't match value count at row 1
    	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2851)
    	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1531)
    	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1622)
    	at com.mysql.jdbc.Connection.execSQL(Connection.java:2385)
    	at com.mysql.jdbc.Connection.execSQL(Connection.java:2306)
    	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1877)
    	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1974)
    	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1897)
    	at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1758)
    	at database.DbAccess.addTransazione(DbAccess.java:82)
    	at database.DbAccess.DbAccess2(DbAccess.java:55)
    	at GestoreContoCorrente.main(GestoreContoCorrente.java:19)
    potreste aiutarmi... grazie
    la tabella del db si aspetta: int(11),char(13),decimal(25,3),date

  2. #2
    Stai inserendo un numero di valori che non corrisponde al numero di colonne della tabella. Sicuro che la tabella ha solo 4 colonne? Se c'è un campo ID dovresti inserire inserire anche questo nei VALUES... oppure specificare solo le colonne che ti interessano nella query:

    Codice PHP:
    Insert into transazioni (colonna1,colonna2,colonna3,colonna4values (?,?,?,?) 
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it L'avatar di nicola
    Registrato dal
    May 2007
    Messaggi
    86
    ti invio l'immagine della tabella... in effetti le colonne sono 5 ma la prima (kiave primaria) è autoincrementante... negli altri esempi che ho (è non danno problemi), io inserisco sempre nella tabella gli elementi non tenedo conto del codice autoincrementante in quanto aumenta da solo...
    grazie
    Immagini allegate Immagini allegate

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Il fatto che sia autoincrementante non significa che non debba essere presente nei valori.
    Qui hai due strade: o passi al campo autoincrementante il valore NULL (non funziona con tutti i DB) oppure utilizzi la seconda forma dell'istruzione INSERT, che prevede un numero inferiore di campi:
    codice:
    INSERT INTO nometabella(elenco campi da compilare)
    VALUES(elenco valori per i campi specificati sopra);
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.