Visualizzazione dei risultati da 1 a 9 su 9

Discussione: UPdate database...

  1. #1
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515

    UPdate database...

    ciao a tutti in un mio progetto in java stò creando un UPDATE ad un database ma ho un problema...praticamente se dovessi modificare un solo row la modifica avviene su tutti i rows che ho inserito nella tabella!!!!!

    questo è lo script:

    codice:
    salvaModifica.addActionListener(new ActionListener() {				
    			public void actionPerformed(ActionEvent evt) {	
    				String s1 = textNome.getText(); 
    				String s2 = textBase.getText();
    				String s3= textTesto.getText();
    				if (s1.equals("")){
    					JOptionPane.showMessageDialog(null, "Inserire il nome ", "Messaggio", JOptionPane.WARNING_MESSAGE);
    				}else if (s2.equals("")){
    					JOptionPane.showMessageDialog(null, "Inserire link della base", "Messaggio", JOptionPane.WARNING_MESSAGE);
    				}else if (s3.equals("")){
    					JOptionPane.showMessageDialog(null, "Inserire link del testo", "Messaggio", JOptionPane.WARNING_MESSAGE);
    				}else {
    				try {
    					Class.forName("org.sqlite.JDBC");
    				}
    				catch (Exception exc) {
    					System.out.println("Errore - Driver jdbc non presente: "+ exc.getMessage());
    				}
    				
    				try {
    					conn = DriverManager.getConnection("jdbc:sqlite:basi.sqlite");						
    	
    					
    					String query = "UPDATE datasong SET nome=?, base=?, testo=? ";
    					pstmt = (PreparedStatement) conn.prepareStatement(query); 
    					pstmt.setString(1, s1); 
    					pstmt.setString(2, s2);
    					pstmt.setString(3, s3);
    					pstmt.executeUpdate(); 
    																	
    					JOptionPane.showMessageDialog(null, "Base e Testo Modificati!", "Messaggio...",JOptionPane.INFORMATION_MESSAGE );							
    					
    					pstmt.close();
    					conn.close();
    					textNome.setText("");
    					textBase.setText("");
    					textTesto.setText("");
    					}
    				
    					catch (Exception exc) {
    						System.out.println("Errore: "+ exc.getMessage());
    					} 
    				}
    			}	
    		});
    HELP!!!!!

  2. #2
    E certo
    codice:
    String query = "UPDATE datasong SET nome=?, base=?, testo=?
    dov'è la clausola "where"?

    in tal modo ti modificherà tutti gli oggetti nel DB.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    scusate il doppio post
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  4. #4
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    del where l'ho capito!!! ma come faccio a far riferimento a quel tipo di row???

    ora mi spiego meglio...in questo frame in un lato ho creato una jlist dove faccio apparire tutte le rows della tabella poi allevento click faccio apparire nelle 3 jtextfield le rispettine colonne associate per poi poterle modificare...

    ma come facci a far riferimento al row selezionato???

  5. #5
    avrai una chiave primaria in quel database, no?

    Fai riferimento a quella... ti estrai anche l'identificativo della tabella e poi quando fai l'update usi tale primary key come ID.

    ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  6. #6
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    ho un piccolo problemino...praticamente per far uscire la stringa del nome su textfiel scrivo:

    textNome.setText(temp.nomeModString2);

    l'id è di tipo int quindi in automatico dovrei scrivere:


    textIDBase.setInt(temp.idNumMod2);

    ma mi da errore!!!!!

    dove sbaglio???

    aiutami!!!!

  7. #7
    certo che è sbagliato.
    non esiste il metodo setInt
    codice:
    textIDBase.setInt(temp.idNumMod2);
    semmai devi fare così:

    codice:
    String tempID=String.valueOf(temp.idNumMod2);
    textIDBase.setText(tempID);
    Ciao
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da paul78
    dove sbaglio??? :
    Nel non leggere la documentazione

    ps: la soluzione di schumy2000 è corretta ed elegante ma puoi risolvere in modo più immediato con
    codice:
    textIDBase.setText("" + temp.idNumMod2);
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    grazie mille ......ho risolto alla grande!!!! mi ero perso in un bicchiere d'acqua!!!!!

    GRAZIE ANCORA....

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 © 2025 vBulletin Solutions, Inc. All rights reserved.