Problema: mantenere i valori decimali

venerdì 19 giugno 2009 - 18.56

Peppino Profilo | Junior Member

Ciao a tutti, ho un problema che non riesco proprio a venirne a capo. Mi spiego, uso Visual Basic 2005 Express Edition ADO.NET con un DB Access in cui ci sono tabelle con Colonne con valori numerici che ho impostato come: Precisione doppia, valuta, 2 posizioni decimali, la stessa formattazione in modifica colonne dei DataGridView, Dataset e a delle variabili locali(dichiarate AS DOUBLE). Se l'inserimento dei dati lo faccio direttamente nel DB da Access, all'apertura dell'applicazione i dati visualizzati comprendono anche i decimali, ma appena faccio girare i DataGridView, chiudo e riapro l'applicazione i decimali sono stati arrotondati. La situazione non cambia nell'inserimento dei dati dall'applicazione nei DataGridView o TextBox, i dati vengono salvati con tutti i valori compresi i decimali. Ma come sopra, dopo aver chiuso e riaperto l'applicazione, i decimali nei DataGriView spariscono, e viene fatto l'arrotondamento anche nel DB. Qualcuno potrebbe spiegarmi come mai avviene questo e che cosa devo fare per eliminare questo problema? grazie. Saluto tutti. Ciao. Peppino.

Jeremy Profilo | Guru

Ciao Peppino.
Come li salvi i dati nel Db ... con quali strumenti e con quale tecnica???
Puoi mostrare un pò di codice sul quale poterci ragionare insieme.???
E' chiaro che il problema dipende dalla formattazione delle colonne del DataGridView .... ma anche no!!

Facci sapere...
Ciao

Peppino Profilo | Junior Member

Ciao, provo a spiegare la procedura usata: dopo aver aggiunto un nuovo Form, vado in origine dati, apro il DataSet e trasporto il DataGridView sul Form, poi apro il DataGridView vada in modifica colonne e immetto il tipo di formato (per i numeri "Valuta" posizioni decimali "2"). Il modo in cui vengono salvati i dati è quello creato automaticamente nel momento in cui ho trasportato il DataGridView sul Form, e cioè il seguente.

Private Sub DettagliFatturaBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DettagliFatturaBindingNavigatorSaveItem.Click

Me.Validate()
Me.DettagliFatturaBindingSource.EndEdit()
Me.DettagliFatturaTableAdapter.Update(Me.FattureDataSet.DettagliFattura)

End Sub

Considerando che sono un principiante, penso che se viene creata una istruzione in automatico non dovrebbero esserci degli errori o almeno credo. Spero che queste righe di codice bastino per capire e ad aiutarmi a risolvere il problema. Ringrazio come sempre e saluto tutti. Cioa.
Peppino.

Jeremy Profilo | Guru

Ciao Peppino.
Così a crudo .... non mi viene in mente nulla che potrebbe spiegare il problema .... dammi tempo di riprodurre lo scenario e verificare se si presenta il problema anche a me.
Entro sera, comunque, ti faccio sapere...
Ciao

Peppino Profilo | Junior Member

Ciao Jeremy, rispondo appena è stato possibile, perchè sto avendo tra l'altro anche problema con l'ADSL.
Comunque come era inspiegabile il fatto dell'arrotondamento automatico dei decimali, altrettanto è inspiegabile il fatto che durante i frequenti inserimenti di prova, ho notato che come per miracolo i decimali vengono mantenuti come inseriti. Forse tra i vari controlli ho cambiato qualcosa (inavvertitamente) che ha risolto il problema (almeno per il momento). Va bene così. Comunque grazie per il tuo tempestivo interessamento al mio problema. Saluto.
Ciao, Peppino.
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5