Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Problema IF-ELSE

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    10

    Problema IF-ELSE

    Salve a tutti, sono alle prime armi con la programmazione con Java, non riesco a venire a capo di questa situazione riesco a collegarmi al database ed ad ottenere i dati che ho bisogno ma quando faccio il confronto con le variabili inserite dall' utente mi si bugga il pg. Il bug consiste che quando il confronto è giusto mi stampa "Login effettuato con successo" come da codice,mentre se sbaglio il confronto non mi dice nulla.Vi ringrazio per l' attenzione. Salve a tutti

    codice:
     
       if(user.equals(databaseUsername) && subname.equals(databaseCognome) && pw.equals(databasePassword)){
                    JOptionPane.showMessageDialog(null, "Login effettuato con successo", "Info", JOptionPane.INFORMATION_MESSAGE);
                    new Menu();
                    break;
                    }else{
                        JOptionPane.showMessageDialog(null, "Non sono stati inseriti i campi in modo corretto", "Info", JOptionPane.INFORMATION_MESSAGE);   }
                }
    Ultima modifica di LeleFT; 31-07-2014 a 16:15 Motivo: Modificati tag QUOTE con tag CODE

  2. #2
    Ti conviene postare tutto il metodo a occhio vedo che c'è qualche graffa in +, oltretutto controlla che non ti vengano lanciate eccezioni

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    10
    Ecco a te
    codice:
    public class Database {    Connection con = null;
        Statement stmt = null;
        ResultSet rs = null;
        PreparedStatement pst = null;
        
        String hostName="locahost";
        String dbPort = "3306";
        String databaseName="lspd";
        String dbUser="root";
        String dbPassword="ciao";
        String jdbc_driver = "com.mysql.jdbc.Driver";
        String user,pw,subname;
        public Database(String nome,String password,String cognome){
            this.user = nome; 
            this.pw = password;
            this.subname=cognome;
            connect(hostName,dbPort,databaseName,dbUser,dbPassword);
             
        }
        
        public void connect(String hostName,String dbPort,String databaseName,String dbUser,String dbPassword){
             
            try {
                Class.forName(jdbc_driver);
                //con = (Connection) DriverManager.getConnection("jdbc:mysql://"+hostName+":"
                       // + dbPort+"/"+databaseName+"?"+"user="+dbUser+"&password=" + dbPassword);
                 /*con = DriverManager.getConnection("jdbc:mysql://"+hostName+":"
                        + dbPort+"/"+databaseName, dbUser, dbPassword);*/
                 
                 String connectionString = "jdbc:mysql://localhost/" + databaseName+ "?user=" + dbUser + "&password=" + dbPassword + "&useUnicode=true&characterEncoding=UTF-8";
                con = DriverManager.getConnection(connectionString);
                
                 if(con != null)
                {
                    System.out.println("Connesso");
                }
                
                 
                /*String query = "SELECT * FROM `account` where nome=? and password=?";
                try{
                    pst = con.prepareStatement(query);
                    pst.setString(1,user);
                    pst.setString(2, pw);
                    rs = pst.executeQuery();
                    
                    if(rs.next())
                    {
                        System.out.println("Trovato utente");
                    }else{
                        System.out.println("non trovato");
                    }
                }catch(Exception e){
                    
                }*/
                 String databaseUsername="",databasePassword="",databaseCognome="";
                 System.out.println("user"+user+"\npw:"+pw+"\n Cog:"+subname);
                 Statement stmt = con.createStatement();
                String SQL = "SELECT * FROM account WHERE nome='" + user + "' && cognome='" + subname +"' && password='" + pw + "'";
    
    
                ResultSet rs = stmt.executeQuery(SQL);
    
    
                // Check Username and Password
                while (rs.next()) {
                    databaseUsername = rs.getString("nome");
                    databaseCognome = rs.getString("cognome");
                    databasePassword = rs.getString("password");
                    if(user.equals(databaseUsername) && subname.equals(databaseCognome) && pw.equals(databasePassword)){
                    JOptionPane.showMessageDialog(null, "Login effettuato con successo", "Info", JOptionPane.INFORMATION_MESSAGE);
                    new Menu();
                    break;
                    }else{
                        JOptionPane.showMessageDialog(null, "Non sono stati inseriti i campi in modo corretto", "Info", JOptionPane.INFORMATION_MESSAGE);   }
                }
      
                
            } catch (SQLException ex) {
                Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Database.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
    Ultima modifica di LeleFT; 31-07-2014 a 16:17 Motivo: Cambiati tag QUOTE con tag CODE

  4. #4
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Tag CODE...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  5. #5
    Bè se i dati sono sbagliati nel while non ci entra perchè giustamente non trova nulla sul db....

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    @Jack496: quando posti del codice, lo devi inserire all'interno dei tag CODE, non dei tag QUOTE che servono a fare citazioni.


    Ho corretto io i tuoi post.


    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

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    10
    Ma se fosse sbagliato il while non dovrebbe neanche fare l'if giusto?


    PS scusate per i post e i tag

  8. #8
    Cerco di essere + chiaro...
    codice:
    ResultSet rs = stmt.executeQuery(SQL);
    Eseguendo il tuo sql se i dati sono corretti allora il resulset conterrà un riga e quindi rs.next() è true e quindi entra nel while e ovviamente entra anche nell'if.

    Se i dati sono sbagliati la query non tirerà fuori nessun risultato e quindi rs.next() sarà false e quindi il corpo del while non viene eseguito.

    P.S
    L'if dentro al while non serve a nulla infatti. Ti basta controllare se rs.next() è true allora i dati inseriti sono corretti altrimenti sicuramente uno dei dati nome,cognome,password sono sbagliati

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    10
    Non è che riusciresti a correggermi il codice? questo aspetto non lo avevo calcolato ... grazie mille.

  10. #10
    Qui non si scrive codice per gli altri....
    Cmq non vedo quale sia la difficoltà nel scrivere un if al posto di un while....
    codice:
       if(rs.next())
       {
           //DATI UTENTE TROVATI
       }else
       {
           //DATI UTENTE NON TROVATI
        }

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.