Ciao a tutti !
Ho questo problema con MYSQL e VB.NET. HO letto e riletto alcuni articoli per capire meglio come gestire i campi prezzo all'interno di MYSQL ed ho scoperto due cose interessanti :
- Il campo migliore per la gestione del prezzo è il Decimal
- Il campo decimal di MYSQL non viene localizzato e mantiene il formato Americano ( ovvero il separatore " . " per i decimali )
Per rendere tutto più fruibile all'interno dell'applicazione ho utilizzato la funzione FormatCurrency ( che invece tiene conto delle impostazioni di localizzazione del S.O. ) di VB per formattare automaticamente i valori numerici inseriti.
Quindi inserendo ad esempio 54556,22 VB lo formatta automaticamente in € 54.556,22 , cosa che purtroppo a MYSQL non piace al momento della Query.
Ovviamente il campo Decimal non accetta ne il simbolo " € " ne il separatore . per le migliaia, ne il separatore , per i decimali ! Urge quindi una pulizia dei dati per trasformarli nel formato che a lui piace, ovvero 54556.22 .
Io ho pensato a questo modo, molto grezzo e semplicistico
codice:
TXTPrezzo.Text = Replace(TXTPrezzo.Text, "€", "")
Dim ValorePrezzo As String
ValorePrezzo = TXTPrezzo.Text
Dim DecimaliVirgolaaPunto As String
Dim MigliaiaPuntoaVirgola As String
DecimaliVirgolaaPunto = ValorePrezzo.Substring(ValorePrezzo.Length - 3, 3)
DecimaliVirgolaaPunto = Replace(DecimaliVirgolaaPunto, ",", ".")
MigliaiaPuntoaVirgola = ValorePrezzo.Substring(0, ValorePrezzo.Length -3)
MigliaiaPuntoaVirgola = Replace(MigliaiaPuntoaVirgola, ".", "")
In questo modo elimino il simbolo € dalla stringa e lo sostituisco con "", poi prendo a campione gli ultimi 3 caratteri della stringa, ovvero i due decimali e la virgola, e vado a sostituire la " , "con il " . " e poi prendo tutto il resto della stringa ed elimino le possibili virgole !
C'è un modo migliore per fare questa cosa ? Chiedo solo suggerimenti per migliorare il tutto 
Ringraziandovi in anticipo vi auguro una buona giornata.