Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-03-2009, 22:28   #1
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
[JAVA] risultati query in una combobox e jtextfield

espongo i due problemi sperando in una vostra risposta:
1) voglio elencare in OGNI RIGA di una combobox cognomi e nomi relativi a dei medici. Sono riuscito a farlo per i cognomi soltanto (o nomi soltanto) ma non entrambi. Questo è quello che dovrei modificare:

//dal form dove ho la combobox faccio la chiamata alla classe Database che contiene le funzioni (penso che vada bene)

Database db = new Database();
Public Vector medico;
.....
medico= db.elenco_medici();
for (int i=0; i<medico.size();i++){
Combo_dottori.addItem(medico.get(i));}

//questa è la funzione nella classe Database

Vector elenco_medici (){
Vector ris = new Vector();
ris.add("vuoto");
String q = null;
String errore = avvia();
q = "SELECT `cognome_medico` FROM `medico`";
try {
Statement st = connessione.createStatement();
ResultSet rs = st.executeQuery(q);
if (rs.isBeforeFirst()) {
ris.removeAllElements();
ris.add("Tutti i medici");}
else {
ris.removeAllElements();
ris.add(errore);
}
while (rs.next()) {
ris.add(rs.getString("cognome_medico"));
} }catch (Exception e) {
//SE VIENE GENERATA UN SQLException LA RESTITUISCO AL CLIENT PER INFORMARLO
ris.removeAllElements();
ris.add(e.toString());
}
return ris;
}

La query per restituire anche i nomi dei medici è semplice (basta aggiungere `nome_medico` dopo il SELECT) ma come modifico la funzione per mettere nome e cognome nella stessa riga???

2)Devo settare come testo di alcune jTextField i risultati di una query...in pratica mi serve il corrispettivo per le query di quello ke faccio nella combobox cosi:

for (int i=0; i<medico.size();i++){
Combo_dottori.addItem(medico.get(i));}

spero di essere stato chiaro.....altrimenti chiedete pure...
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 10:07   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Una volta recuperato da database il resultset con i nomi e cognomi dei dottori, nella combobox non dovrai fare altro che inserire la stringa corrispondente a nome + cognome.

Non ho capito bene dove hai difficoltà, nel codice.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 18:11   #3
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
io ho provato cosi:

Vector elenco_medici (){
Vector ris = new Vector();
ris.add("vuoto");
String q = null;
String errore = avvia();
q = "SELECT `cognome_medico` `nome_medico` FROM `medico`";//NUOVA QUERY
try {
Statement st = connessione.createStatement();
ResultSet rs = st.executeQuery(q);
if (rs.isBeforeFirst()) {
ris.removeAllElements();
ris.add("Tutti i medici");}
else {
ris.removeAllElements();
ris.add(errore);
}
while (rs.next()) {
ris.add(rs.getString("cognome_medico"));
ris.add(rs.getString("nome_medico"));//AGGIUNTA
} }catch (Exception e) {
//SE VIENE GENERATA UN SQLException LA RESTITUISCO AL CLIENT PER INFORMARLO
ris.removeAllElements();
ris.add(e.toString());
}
return ris;
}

ma non va
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 18:23   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
"Non va" non è molto specifico...
Cos'è che non va?

Posta almeno gli errori che ti sputa in output e proviamo a capire cosa c'è che "non va"
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 30-03-2009, 21:11   #5
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
scusa non avevo il programma sotto....mi da errore javaSQLException...non trova la colonna `cognome_medico`, eppure con la funzione scritta nel primo post la trova, con solo cognome_medico nella query.

edit:spostando il nome prima del cognome nella query e in ris.add non trova la colonna `nome_medico`

Ultima modifica di serpico84 : 30-03-2009 alle 21:23.
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 09:16   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
...mi da errore javaSQLException...non trova la colonna `cognome_medico`, eppure con la funzione scritta nel primo post la trova, con solo cognome_medico nella query
Perfetto, se hai capito che ti solleva quell'eccezione perchè c'è un errore dovuto a un'errata sintassi della query quando la trasformi per recuperare i valori di due campi invece che di uno solo praticamente hai quasi risolto il problema.

Il passo che ti manca sarebbe, documentazione alla mano (o a video ), quello di verificare la sintassi SQL corretta per una SELECT.

Codice:
q = "SELECT `cognome_medico`, `nome_medico` FROM `medico`";//NUOVA QUERY
Manca la virgola?
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 12:33   #7
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
si!! grazie mille come al solito errori banali....x quanto riguarda il punto 2)??
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 13:07   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da serpico84 Guarda i messaggi
si!! grazie mille come al solito errori banali....x quanto riguarda il punto 2)??
Potresti spiegare meglio quel punto?
Con calma e in modo chiaro, postando anche del codice se lo ritieni opportuno (nel qual caso ti invito ad usare gli appositi tag CODE, per non perdere l'identazione).
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 31-03-2009, 20:22   #9
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
non ho ancora fatto codice perchè non so come fare. Quello che devo fare è ricevere in varie jtextfield il risultato di una query (salvata sempre su vettore, tramite relativa funzione), un po come ho fatto con la combo medico
Codice:
for (int i=1; i<medico.size();i=i+2){
                Lista_dottori.addItem((String)medico.get(i-1)+" "+medico.get(i));}
potrebbe essere banale ma molte cose di java ahimè l'ho dimenticate!
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 09:43   #10
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quindi hai già:
il vettore di oggetti (String?) generato a partire dal result set della query.

Vuoi fare questo:
tramite diversi JTextField visualizzare tutti gli oggetti (String?) presenti nel vettore.

Domanda:
Se devi utilizzare un JTextField per ogni oggetto nel vettore dei risultati della query, significa che devi istanziarne dinamicamente il numero? (nel senso che a priori non sai quanti oggetti hai nel vettore risultato, e in base a quel numero devi creare il corrispettivo numero di JTextField)?

Ho capito bene?



Nel caso la risposta fosse affermativa, ti chiedo ma ha senso usare proprio dei JTextField?

1) Se devo solo visualizzare i risultati (String) di una query e non devo permettere all'utente di editare i risultati mostrati JTextField non è neccessario; si potrebbe usare invece JLabel.

2) se devo visualizzare una lista di risultati di una query forse è meglio usare un componente che prenda in input il contenuto di tutto il vettore di risultati e li mostri tutti, invece che instanziare un componente per ogni risultato.
Anche perchè facciamo questa considerazione: se la query genera 350 String come risultato, cosa facciamo? Istanziamo dinamicamente nella finestra 350 JTextField per mostrarle all'utente? E se le String fossero 1000?

Detto questo, potresti invece anche avere buone ragioni che ti hanno spinto a fare questa scelta, nel qual caso ignora completamente le osservazioni che ho postato.

Ciao
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 11:45   #11
serpico84
Senior Member
 
L'Avatar di serpico84
 
Iscritto dal: Sep 2005
Messaggi: 342
ti rispondo in modo breve poichè ho poco tempo ora....inserisco il codice fiscale su una text field, tramite un bottone faccio partire la query che controlla se quel codice fiscale è già presente nel DB, se si riempe i campi textfield dei dati del paziente (rimangono però oscurati cioè non editabili), se no i campi si attivano e quindi posso inserire i dati del paziente (che è un paziente nuovo). Per le altre cose ti rispondo stasera. Grazie per il supporto!!
serpico84 è offline   Rispondi citando il messaggio o parte di esso
Old 01-04-2009, 12:46   #12
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da serpico84 Guarda i messaggi
ti rispondo in modo breve poichè ho poco tempo ora....inserisco il codice fiscale su una text field, tramite un bottone faccio partire la query che controlla se quel codice fiscale è già presente nel DB, se si riempe i campi textfield dei dati del paziente (rimangono però oscurati cioè non editabili), se no i campi si attivano e quindi posso inserire i dati del paziente (che è un paziente nuovo). Per le altre cose ti rispondo stasera. Grazie per il supporto!!
Ok adesso la sistuazione è chiara.

Allora la cosa è semplice:
- numero di JTextField fisso, uno per ogni campo di un record/result della query.

La query torna un result set;
Il result set o contiene 1 record/result, oppure ne contiene zero;

Siccome dobbiamo popolare il testo di JTextField a noi interessano oggetti String quindi quando leggi ogni campo del result set trasformi il valore letto in String che piazzi in un vettore [metodo più banale: String s = "" + valoreResultSet.getQualcosa()].

Finito di leggere il result set hai un vettore di string che contiene:
- zero elementi se la query non ha trovato nessun risultato con quel codice fiscale.
- un numero di elementi pari al numero di campi del result set letto se la query ha trovato l'unico result possibile per quel codice fiscale.

Nel primo caso (vettore di string di lunghezza zero) abiliti tutti i JTextField [metodo .setEnable(true)]; nel secondo caso (vettore di string di lunghezza maggiore di zero : [vector.size() > 0]) disabiliti tutti i JTextField [metodo .setEnable(false)] e li popoli con i valori del vettore [metodo .setText(String) da chiamare sul JTextField desiderato passandogli la String appropriata]

Ciao
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
Social e minori, Butti apre al dibattito...
Tutte le offerte Amazon del weekend, sol...
Amazon spinge sull'usato garantito: 10% ...
TikTok rischia una maxi-multa in Europa:...
Bose su Amazon: QuietComfort SC over ear...
Scope elettriche super accessoriate in o...
Umidità e muffa addio: questo deu...
DREAME Aqua10 Ultra Roller a 999€ &egrav...
500.000 kit gratis consegnati: Noctua fa...
Il MIT sperimenta il calcolo termico: op...
Sembra ormai certo: la prossima Xbox sar...
"Solutions Beyond Displays": l...
La società europea The Exploratio...
Dalle auto ai robot umanoidi: Faraday Fu...
Vodafone annuncia la dismissione di un s...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v