reggioboy ha scritto:
Io voglio che quando inserisco un cognome se c'è scrive nome e cognome altrimenti se non lo trova restituisca dato non trovato ,però qualsiasi dato metto mi esce dato non trovato non capisco il motivo?
Il motivo è che ci sono svariati errori tecnici/logici.
Innanzitutto componi la stringa del SQL in modo sbagliato
"SELECT * FROM `rubrica` WHERE Cognome="+"cognome"+";"
La parte evidenziata è una stringa
letterale, NON è la variabile cognome il cui valore è preso in input.
Se avessi messo es.:
"SELECT * FROM `rubrica` WHERE Cognome="+cognome+";"
Sarebbe stato comunque sbagliato, perché il SQL veniva fuori tipo SELECT * FROM `rubrica` WHERE Cognome=Rossi; come se Rossi fosse una COLONNA della tabella. Per cui tecnicamente dovresti quotare il valore. Ma per evitare proprio grane di questo tipo, generalmente si usa
PreparedStatement, non Statement.
Poi ottieni un ResultSet ma non estrai alcun record.
E oltretutto:
if(sql.equals(cognome))
NON ha assolutamente alcun senso. sql è la stringa con tutta la istruzione di SELECT, non ha senso dire "se uguale a cognome".
Prima di estrarre i dati da un record, devi entrare in quel record. Vuol dire che si DEVE usare il next() di ResultSet. Se ci si aspetta N record, si fa il classico ciclo
while (res.next()) { ...... }
altrimenti se ci si aspetta 1 solo record, si può usare un semplice if
if (res.next()) { ...... }
Insomma, devi rivedere un po' tutto. E anche cercare di ragionare un po' di più.