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