Ciao a tutti, ho spesso problemi nella gestione delle virgole in applicazioni .NET e spero che qualcuno possa, finalmente, chiarirmi le idee...
Sistemi Operativi utilizzati:
Windows 2003 ENG
Windows 2000 ITA
Globalizzazione usata nel web.config:
<globalization requestEncoding="utf-8" responseEncoding="utf-8"
culture="it-IT" uiCulture="it-IT" />
Data Base Access con un campo impostato come Numerico, precisione doppia
per salvare i dati nel DB faccio:
myCommand.Parameters.Add(new OleDbParameter("@Valore", OleDbType.VarChar));
oppure
myCommand.Parameters.Add(new OleDbParameter("@Valore", OleDbType.Decimal));
e poi:
myCommand.Parameters["@Valore"].Value = importo.ToString();
in ogni sistema operativo ottengo risultati differenti... esempio
con Decimal:
- OK in Windows 2003 ENG
- non viene considerata la virgola in Windows 2000 ITA (200,12 diventa 20012)
con VarChar
OK in Windows 2000 ITA
problemi vari con Windows 2000 ITA
quindi mi trovo in una situazione in cui: nel s.o. di sviluppo è tutto OK e poi in produzione ho problemi ... oppure devo sviluppare con problemi nella gestione delle virgole.. sapendo che nella versione in produzione sarà tutto OK :-((((
Vorrei capire quale soluzione adottare per poter gestire in modo corretto (a prescindere dal S.O. o dal tipo di DB: Oracle, MSSQL, MySQL) i campi decimali... non credo che io debba creare campi ti tipo char nel DB per evitare questo problema ... (almeno spero che non sia così)
Grazie a tutti e scusate per il post un po lungo.... ma volevo esporre nel dettaglio il problema!
Bye