34 messaggi dal 02 dicembre 2010
Salve a tutti,
domanda forse banale forse già fatta.
Ma se ho una tabella con un sacco di campi che non possono essere NULL qual'è il modo più rapido e indolore per controllare che essi vengano valorizzati?
Premetto che uso EF/Repository!

Grazie a tutti
678 messaggi dal 12 maggio 2001
www.idioteca.it
diciamo che forse non ho capito cosa vuoi sapere realmente... ma in ogni caso io farei un controllo lato server prima di eseguire inserimenti/aggiornamenti sulla tabella e avviserei l'utente dell'obbligatorietà di uno o più campi. Puoi scegliere di fare una validazione anche lato client considerando che può essere comunque superata facilmente... in alternativa fai la tua operazione sul db ed intercetti l'errore... comunque non mi piace questa soluzione.
ciao
34 messaggi dal 02 dicembre 2010
Praticamente per salvare un nuovo oggetto ho visto che si fa
chiamiamo f l'oggetto di un qualsiasi tipo mappato nell'entityModel

.insertonsubmit(f)
.savechanges()

Se ho messo a NULL un campo che doveva essere NON NULL il programma si arrabbia.

La mia domanda era: lo lascio arrabbiare e intercetto l'errore magari mettendo un try/catch quando si esegue l'opzione .savechanges()? Oppure si validano i campi dell'oggetto a priori controllando se sono stati inseriti correttamente (ma il come lo chiedo a voi)?
678 messaggi dal 12 maggio 2001
www.idioteca.it
io sarei per tutti e due... valido i dati prima di chiamare la insert e intercetto un eventuale errore con try catch.
Per la prima parte ovviamente devi conoscere la struttura del db e quindi gestisci con dei validator (lato client o condizioni di verifica lato server) se i dati recuperati sono completi e corretti... la seconda parte invece è utile per non mostrare un errore facilmente gestibile e di cattivo gusto per l'utente (che potrebbe non sapere che deve compilare i campi secondo alcune regole se non glielo dici tu in qualche modo) e inoltre ti consente di gestire errori di inserimento ma non solo secondo le tue esigenze.
ciao
34 messaggi dal 02 dicembre 2010
giangi_77 ha scritto:
io sarei per tutti e due... valido i dati prima di chiamare la insert e intercetto un eventuale errore con try catch.
Per la prima parte ovviamente devi conoscere la struttura del db e quindi gestisci con dei validator (lato client o condizioni di verifica lato server) se i dati recuperati sono completi e corretti... la seconda parte invece è utile per non mostrare un errore facilmente gestibile e di cattivo gusto per l'utente (che potrebbe non sapere che deve compilare i campi secondo alcune regole se non glielo dici tu in qualche modo) e inoltre ti consente di gestire errori di inserimento ma non solo secondo le tue esigenze.
ciao

concettualmente è come pensavo.
La mia domanda da nabbo è: cosa sono i validator?
Perchè da nabbo quale sono l'unica orribile soluzione che so fare è

if txtNome.text = "" then
messagebox.show("Inserire il nome")
exit sub
end if

ma ho letto che ci sono dei validatore volevo qualche piccola info in più!
678 messaggi dal 12 maggio 2001
www.idioteca.it
diciamo che mi devi scusare, ho usato la parola "validator" in modo improprio... per validator intendo dire qualunque sistema che tu deciderai di usare per verificare la validità dei dati... che sia lato client (standard o custom validator), che sia server (classi, metodi locali o semplici if come hai segnalato tu), poco cambia.
Prendendo spunto dal tuo esempio, intanto devi decidere se vuoi bloccare subito l'utente al primo errore o se vuoi fare un elenco di tutti gli "errori" e stamparli in un'unica volta... nel primo caso va bene il tuo metodo (rivedendo la modalità di stampa del messaggio magari), nel secondo caso ti salvi i vari messaggi in una variabile (stringa? o altro) e finiti i tuoi controlli mostri un unico messaggio con tutti gli errori riscontrati.
ciao

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.