Formattazione dato

mercoledì 18 giugno 2014 - 10.53
Tag Elenco Tags  VB.NET

zolamia Profilo | Newbie

Buongiorno a tutti, ho un problema che mi sta facendo impazzire da ieri.
In pratica, ho una casella di testo dove inserisco un prezzo iniziale e, cliccando su un tasto mi si popola un datagrid facendo il calcolo del prezzo inserito nella casella di testo + alcune percentuali e nel salvare i dati, le posizioni decimali non sono esatte.
Mi spiego meglio. Ho un prezzo iniziale di € 12 e nella tabella mi memorizza :
12,0000
se poi calcolo i 12 € + 30 % = € 15.60 nella griglia me lo visualizza in modo esatto ma nel db mi memorizza 156,0000

dim prezzo as string
prezzo = FormatCurrency(DataGridViewListino.Rows(A - 1).Cells("R_Prezzo").Value.Tostring)

In cosa sbaglio ? Spero mi possiate aiutare. Grazie mille
:::...Truly madly deeply...:::

morpheus87mi Profilo | Junior Member

Ciao, per prima cosa è consigliato specificare il tipo di database che stai utilizzando che a quanto pare sia Access.
Per il tuo problema il primo errore sta nel dichiarare la variabile prezzo come string invece di double.
Per il problema di salvataggio postami la stringa sql. ;)
______________________________________________________________________________
Basta solo un carattere sbagliato nel codice sorgente per distruggere un'intera applicazione

zolamia Profilo | Newbie

si ciao, e grazie.

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Mi registra tutto ma i prezzi non sono giusti.

:::...Truly madly deeply...:::

morpheus87mi Profilo | Junior Member

1. Che necessità hai di usare FormatCurrency ?!? Solo per avere il simbolo della valuta!!! Basta settare la datagrid
nomedatagrid.Columns("nomecolonna").DefaultCellStyle.Format = "c"

2. Che sarebbe NumeroListini ?

3. Non capisco il tuo ragionamento... prima inserisci il record e poi lo modifichi immediatamente??! Perchè non lo inserisci direttamente modificato??

4. Che tipo di dato hai impostato il campo "R_Prezzo" nel db?
______________________________________________________________________________
Basta solo un carattere sbagliato nel codice sorgente per distruggere un'intera applicazione

zolamia Profilo | Newbie

Ciao Marco, il dato R_Prezzo nel db è ti tipo money
numerolistini è invece il numero dei listini che io ho registrato.

Per quanto riguarda la formattazione del datagrid l'ho appena modificata come mi dicevi tu ma la registrazione è sempre errata.
In cosa sbaglio?

:::...Truly madly deeply...:::

zolamia Profilo | Newbie

Ragazzi, ciao nessuno può aiutarmi? non riesco.

Ricapitolo il problema:

ho un campo money nel db

popolo una datagrid con i campi che genero da un campo prezzo * 10% , 20%, 30% ecc (un listino).

Nel popolare il datagrid i valori sono esatti Es: 12,00 - 12,50 - 12, 80 ecc ecc.. ma nel registrarli nel database mi registra 12,0000 (anziché 12,00) - 125,0000 (anziché 12,50) - 128,0000 (anziché 12,80)

In cosa sbaglio?



posto il codice:

Dim prezzo As Decimal

prezzo = CType(DataGridViewListino.Rows(A - 1).Cells("R_Prezzo").Value, Decimal)



Grazie mille

:::...Truly madly deeply...:::

morpheus87mi Profilo | Junior Member

Ciao, scusami ma mi è appena arrivata la notifica della tua risposta.

Ho visto che hai dichiarato prezzo come Decimal, rimetti Double. Inoltre prova a impostare il tipo di dato di "R_Prezzo" come numerico a precisione doppia (se stai utilizzando Access).
______________________________________________________________________________
Basta solo un carattere sbagliato nel codice sorgente per distruggere un'intera applicazione

zolamia Profilo | Newbie

Ciao grazie, nel db RPrezzo è decimal
Se poi dichiaro prezzo as double = datagrid........value mi da l'errore di conversione. E
Errore del tipo d dati da varcar a numeric
:::...Truly madly deeply...:::

morpheus87mi Profilo | Junior Member

Se ti da errore di conversione vuol dire che c'è qualche problema. Postami il codice.
______________________________________________________________________________
Basta solo un carattere sbagliato nel codice sorgente per distruggere un'intera applicazione

zolamia Profilo | Newbie

Ma lo sai che forse hai ragioneeee .... Avevo scritto sul forum proprio per questo.
:::...Truly madly deeply...:::

morpheus87mi Profilo | Junior Member

????
______________________________________________________________________________
Basta solo un carattere sbagliato nel codice sorgente per distruggere un'intera applicazione

zolamia Profilo | Newbie

Si , c'è un problema ma bisogna capire quale
:::...Truly madly deeply...:::

morpheus87mi Profilo | Junior Member

Posta il codice che usi per fare i calcoli perché è strano che ti dia errore di conversione
______________________________________________________________________________
Basta solo un carattere sbagliato nel codice sorgente per distruggere un'intera applicazione

jekisi Profilo | Senior Member

Ciao,fai la prova ad usare questo:

TextBox1.Text = String.Format(CDec(TextBox1.Text).ToString("c2"))

Fammi sapere
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5