Formattare campo tipo valuta

sabato 11 maggio 2013 - 10.58

jekisi Profilo | Senior Member

Salve a tutto il forum, avrei il seguente problema:

Per formattare un campo di tipo valuta faccio

ImponibileTextBox.Text = String.Format("{0:c2}", Convert.ToDecimal(ImponibileTextBox.Text))

Solo che non mi spunta davanti all' imponibile il simbolo €

Per fare ciò cosa dovrei fare?

Come dovrei cambiare il codice?

Distinti Saluti

Fabio Messina

Dev01 Profilo | Newbie

ImponibileTextBox.Text = String.Format("{0:c2}", Convert.ToDecimal(ImponibileTextBox.Text)) & " €"

jekisi Profilo | Senior Member

Ciao, grazie per la risposta.

Il codice funzina solo che non so perchè non mi salva la formattazione, io faccio:

ImponibileTextBox.Text = String.Format("{0:c2}", Convert.ToDecimal(ImponibileTextBox.Text)) & ""
Cn.Open()
sql = "UPDATE Rddt SET Imponibile=" & Chr(34) & ImponibileTextBox.Text.Replace(Chr(34), "''") & Chr(34) & ", Iva=" & Chr(34) & IvaTextBox.Text.Replace(Chr(34), "''") & Chr(34) & " where IdRiga=" & IDrigaTextBox.Text
cmd = New OleDb.OleDbCommand(sql, Cn)
dr = cmd.ExecuteReader
Cn.Close()

Mica per il campo valuta devo cambiare la query?

Distinti Saluti

Fabio Messina

Dev01 Profilo | Newbie

Ciao,

hai scritto:

ImponibileTextBox.Text = String.Format("{0:c2}", Convert.ToDecimal(ImponibileTextBox.Text)) & "" ' e la €??

Oltre ad essere impossibile inserire un simbolo alfabetico in un campo formattato quale valore numerico, risulta altamente sconsigliabile nel caso dovessi affrontare, successivamente, dei calcoli sui valori ivi contenuti (per cui ti sconsiglio, come conseguenza, anche l'utilizzo di un campo di tipo text).

La € va aggiunta a runtime (o nella label esplicativa posta di fianco alla textbox).

Nessuno che abbia un po di senno la inserirebbe nello stesso campo impiegato per registrare il valore.

jekisi Profilo | Senior Member

Il fatto che non voglio usare il campo testo è il seguente:

Dopo dovrei fare le stampe, e se metto il campo testo non posso fare per certi campi la funzone SUM di Crstal Report, quindi il campo deve essere numerico o valuta.

Per quanto riguarda l formatazione, se scrivo
TextBox1.Text = String.Format("{0:c2}", Convert.ToDecimal(TextBox1.Text)) & " €"

e nella text scrivo ad sempio 25 mi restituisce € 25,00 €

se invece tolgo il simbolo € finale

TextBox1.Text = String.Format("{0:c2}", Convert.ToDecimal(TextBox1.Text)) & " €"
TextBox1.Text = String.Format("{0:c2}", Convert.ToDecimal(TextBox1.Text)) & ""
mi resituisce € 25,00

Ma non risco a salvarlo, neanche come campo valuta.

Non capisco questo motivo.

Dev01 Profilo | Newbie

Infatti io ti ho detto che il campo di testo NON va utilizzato.

Se inserisci un valore contenete una virgola il DML non l'accetta (Tu scrivi '€ 25,00').

Io ho fatto così:

Alter table MyTable add valuta decimal (10,2); -- dove (10,2) indica le massime posizioni possibili rispettivamente prima e dopo la virgola.

per poi eseguire:

Update MyTable set valuta= 123.45 where id=1; ' nota che la tabella conteneva già alcuni dati.

Sei il problema persiste prova ad eseguire un TryCast esplicito fra il testo e il tipo Decimal.

PS: Per pura curiosità: a cosa servono tutti quei Chr(34)?? Rendono il codice poco leggibile, affaticano il compilatore e non risultano essere di alcuna utilità.

01000100 01100101 01110110 00101101 00110000 00110001
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