Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Problema decimale
sabato 03 marzo 2007 - 15.32
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
sab 3 mar 2007 - 15:32
Input string was not in a correct format Ciao, uso in DB access che risiede su WIN 2000 ENG mentre sto facendo le prove su XP ITA, indipendentemente da questo in entrambi i casi ottengo un errore quando cerco di salvare un valore decimale, cosa sbaglio??
OleDbCommand myCommand = new OleDbCommand("SP_FatturaLiberoDettaglio_Update", myConnection);
myCommand.CommandType=CommandType.StoredProcedure;
myCommand.Parameters.Add(new OleDbParameter("@DescrizioneDilazione", OleDbType.VarChar));
myCommand.Parameters.Add(new OleDbParameter("@Iva", OleDbType.VarChar));
myCommand.Parameters.Add(new OleDbParameter("@UM", OleDbType.VarChar));
myCommand.Parameters.Add(new OleDbParameter("@Sconto", OleDbType.Integer));
myCommand.Parameters.Add(new OleDbParameter("@Quantita", OleDbType.Decimal));
myCommand.Parameters.Add(new OleDbParameter("@Valore", OleDbType.Decimal));
myCommand.Parameters.Add(new OleDbParameter("@Imponibile", OleDbType.Decimal));
myCommand.Parameters.Add(new OleDbParameter("@TotaleRiga", OleDbType.Integer));
myCommand.Parameters.Add(new OleDbParameter("@Sc", OleDbType.Decimal));
myCommand.Parameters.Add(new OleDbParameter("@IDRiga", OleDbType.VarChar));
myCommand.Parameters["@DescrizioneDilazione"].Value = DescrizioneRigaIns.Text;
myCommand.Parameters["@Iva"].Value = IVAIns.SelectedValue;
myCommand.Parameters["@UM"].Value = Um.Text;
myCommand.Parameters["@Sconto"].Value = "0";
myCommand.Parameters["@Quantita"].Value = Convert.ToDecimal(Qt.Text).ToString();
if (ddlSconto.SelectedValue == "1")
{
decimal valimporto = 0;
decimal valimponibile = 0;
decimal valtotale = 0;
valimporto = Convert.ToDecimal(Importo.Text) * (-1);
valimponibile = Convert.ToDecimal(Imponibile.Text) * (-1);
valtotale = Convert.ToDecimal(TotaleRiga.Text) * (-1);
myCommand.Parameters["@Valore"].Value = valimporto.ToString();
myCommand.Parameters["@Imponibile"].Value = valimponibile.ToString();
myCommand.Parameters["@TotaleRiga"].Value = valtotale.ToString();
}
else
{
myCommand.Parameters["@Valore"].Value = Convert.ToDecimal(Importo.Text).ToString();
myCommand.Parameters["@Imponibile"].Value = Convert.ToDecimal(Imponibile.Text).ToString();
myCommand.Parameters["@TotaleRiga"].Value = Convert.ToDecimal(TotaleRiga.Text).ToString();
}
myCommand.Parameters["@TotaleRiga"].Value = TotaleRiga.Text;
myCommand.Parameters["@Sc"].Value = ddlSconto.SelectedValue;
myCommand.Parameters["@IDRiga"].Value = IDRigaTxt.Text;
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
Le ho provate tutte
a mettere:
valimponibile.ToString();
Convert.ToDecimal(valimponibile.ToString());
quello che sono sicura è che l'errore si verifica SOLO quando inserisco un valore con decimali in Quantita o Valore
Nel DB il campo è di tipo valuta!
Un altro comportamente strano è che in fase di inserimento funziona perfettamente (vengono salvati i decimali), l'errore si verifica (sempre modificando quantita e valore) in fase di modifica. Per completezza allego le due porzioni di codice (insert e update)
Il problema non è legato al fatto che ho messo il ToString(); dato che in insert non ho problemi di questo tipo, il ToString() l'avevo messo perchè provando la pagina su sistema operativo ITA e ENG avevo dei comportamenti differenti.
Grazie in anticipo
L'update l'ho inserito prima (ed è quello che mi da problemi)
L'insert è questo, e NON da problemi (stranissimo)
OleDbCommand myCommand = new OleDbCommand("SP_FatturaLiberoDettaglio_Insert", myConnection);
myCommand.CommandType=CommandType.StoredProcedure;
myCommand.Parameters.Add(new OleDbParameter("@NumeroFattura", OleDbType.VarChar));
myCommand.Parameters.Add(new OleDbParameter("@Data", OleDbType.Date));
myCommand.Parameters.Add(new OleDbParameter("@DescrizioneDilazione", OleDbType.VarChar));
myCommand.Parameters.Add(new OleDbParameter("@UM", OleDbType.VarChar));
myCommand.Parameters.Add(new OleDbParameter("@Sconto", OleDbType.Integer));
myCommand.Parameters.Add(new OleDbParameter("@Quantita", OleDbType.Decimal));
myCommand.Parameters.Add(new OleDbParameter("@Valore", OleDbType.Decimal));
myCommand.Parameters.Add(new OleDbParameter("@Imponibile", OleDbType.Decimal));
myCommand.Parameters.Add(new OleDbParameter("@Iva", OleDbType.VarChar));
myCommand.Parameters.Add(new OleDbParameter("@TotaleRiga", OleDbType.Decimal));
myCommand.Parameters.Add(new OleDbParameter("@VoceCosto", OleDbType.VarChar));
myCommand.Parameters.Add(new OleDbParameter("@Sc", OleDbType.Integer));
myCommand.Parameters["@NumeroFattura"].Value = NumeroDoc.Text.ToString();
myCommand.Parameters["@Data"].Value = DataDoc.Text;
myCommand.Parameters["@DescrizioneDilazione"].Value = DescrizioneRigaIns.Text;
myCommand.Parameters["@UM"].Value = Um.Text;
myCommand.Parameters["@Sconto"].Value = "0";
myCommand.Parameters["@Quantita"].Value = Convert.ToDecimal(Qt.Text).ToString();
if (ddlSconto.SelectedValue == "1")
{
decimal valimporto = 0;
decimal valimponibile = 0;
valimporto = Convert.ToDecimal(Importo.Text) * (-1);
valimponibile = Convert.ToDecimal(Imponibile.Text) * (-1);
myCommand.Parameters["@Valore"].Value = valimporto.ToString();
myCommand.Parameters["@Imponibile"].Value = valimponibile.ToString();
}
else
{
myCommand.Parameters["@Valore"].Value = Convert.ToDecimal(Importo.Text).ToString();
myCommand.Parameters["@Imponibile"].Value = Convert.ToDecimal(Imponibile.Text).ToString();
}
// myCommand.Parameters["@Valore"].Value = Importo.Text;
// myCommand.Parameters["@Imponibile"].Value = Imponibile.Text;
myCommand.Parameters["@Iva"].Value = IVAIns.SelectedValue;
if (ddlSconto.SelectedValue == "1")
{
decimal valtotale = 0;
valtotale = Convert.ToDecimal(TotaleRiga.Text) * (-1);
myCommand.Parameters["@TotaleRiga"].Value = valtotale.ToString();
}
else
{
myCommand.Parameters["@TotaleRiga"].Value = TotaleRiga.Text;
}
myCommand.Parameters["@VoceCosto"].Value = "700-1";
myCommand.Parameters["@Sc"].Value = ddlSconto.SelectedValue;
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
Torna su
Stanze Forum
Elenco Threads
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 !