Gestione Campi Numerici

lunedì 03 aprile 2006 - 15.33

wbianco Profilo | Newbie

Buongiorno...

Ho un piccolo problema con la mia applicazione Client\Server.

Ho collegato un textBox ad un campo di tipo numerico del
mio dataset tipizzato.
Il campo accetta anche i valori nulli e quando sono in fase di inserimento non ci sono
problemi.
In fase di modifica invece, se elimino il valore del textBox e salvo i dati (il salvataggio
viene effettuato tramite modalità disconnessa...quindi utilizzanto per esempio
il currencymanager...) non mi valorizza il campo con il volare di null..ma
salva il precedente valore del campo.

Sembra una cosa banale..me ne rendo conto...
ma per me sta diventando un problema.

Grazie.

19018 Profilo | Expert

Ciao, potresti sfruttare l'evento textchanged e fare un controllo, se non ci sta testo allora lo poni a null.
Cmq se usi framework 2 puoi sfruttare la classe System.DBNull
Ciao

Stefano Passatordi

http://blogs.dotnethell.it/stem/

sanbiz Profilo | Senior Member

>Buongiorno...
>
>Ho un piccolo problema con la mia applicazione Client\Server.
>
>Ho collegato un textBox ad un campo di tipo numerico del
>mio dataset tipizzato.
>Il campo accetta anche i valori nulli e quando sono in fase di
>inserimento non ci sono
>problemi.
>In fase di modifica invece, se elimino il valore del textBox
>e salvo i dati (il salvataggio
>viene effettuato tramite modalità disconnessa...quindi utilizzanto
>per esempio
>il currencymanager...) non mi valorizza il campo con il volare
>di null..ma
>salva il precedente valore del campo.
>
>Sembra una cosa banale..me ne rendo conto...
>ma per me sta diventando un problema.

Andrò un po' a spanne.
Probabilmente ti appoggi ad un dataadapter vero?
Quindi quando fai l'update del dataset, il dataadapter si appoggerà alle sp (se usi sql o ai commandtext se usi access) che avrà generato in fase di creazione automatica (se l'ahi usata).
Probabilmente il problema è lì. Vai ad aprire la query di aggiornamento e guarda come è scritta. Forse, l'update è fatto solo sui campi non blank.

--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

wbianco Profilo | Newbie

Innanzitutto grazie per la risposta...

E'' possibile (anche se non ho ancora avuto modo di controllare...)che la query di aggiornamento dell'adapter sia errata,
ma questo significa che da Dot.Net non è possibile salvare i campi numeri (collegati a textBox non valorizzati)
in maniera automatica per esempio attraverso il bindingContext..o anche come scrivi te con l'adapter!!!
Non esiste per esempio una propiretà del dataSet o del datacolumn che valorizza i campi numerici a null
nel caso siano bindati ad oggetti non valorizzati???mi sembra una limitazione troppo grande...e non
credo che nessuno abbia mai avuto questo problema se lavora in maniera disconnessa.....

Per esempio nel vecchio vb6, se si usava il metodo update del recordset(con oggetti bindati)
i dati venivano salvati in maniera corretta senza intervenire a mano su questo o altri tipi di dato.


grazie

sanbiz Profilo | Senior Member

>E'' possibile (anche se non ho ancora avuto modo di controllare...)che
>la query di aggiornamento dell'adapter sia errata,
Non ho detto che sia errato nè che sbagli.

>ma questo significa che da Dot.Net non è possibile salvare i
>campi numeri (collegati a textBox non valorizzati)
>in maniera automatica per esempio attraverso il bindingContext..o
>anche come scrivi te con l'adapter!!!

Non ho neppure detto che non sia possibile.

>Non esiste per esempio una propiretà del dataSet o del datacolumn
>che valorizza i campi numerici a null
>nel caso siano bindati ad oggetti non valorizzati???mi sembra
>una limitazione troppo grande...e non
>credo che nessuno abbia mai avuto questo problema se lavora in
>maniera disconnessa.....

Nessuna limitazione, solo il fatto che la procedura automatica di creazione è una procedura automatica e come tale va bene per la maggior parte dei casi, ma non è completa. Va in ogni caso sistemata o controllata a tuo piacere.

Se, ad esempio, la routine crea una stringa tipo questa
"Update miaTabella set Campo1=1, Campo3=3" verranno aggiornati solo campo1 e campo3 e se esiste un campo2 quello terrà il vecchio valore.
Quello che volevo dirti era solo di controllare tali istruzioni in modo da essere sicuro che quella parte non abbia imprecisioni.

Probabilmente utilizzerà dei parametri nella generazione della query, parametri che possono essere forzati ai valori che vuoi, ma devi sempre prima verificare che cosa sta facendo dietro le quinte.
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5