Jag har i ett formulär en ruta där man fyller i en procentsats. Den anges i HELA procent. När jag sedan sparar detta i db vill jag ha det i formatet 1.xx. (1 punkt procent) Det för att jag använder procentsatsen vid beräkning. Kanske inte den bästa lösningen men så är det. Nu till problemet. använd istället punkt som decimalseparator och sedan Nix det hjälper inte. Skickar du parametriserat eller stoppar du in rubbet i sql-frågan på det gamla klassiska (och värdelösa) viset? Paramametrar va klart. Du är alltså 100% på att du har 1.25 och inte 125 när du stoppar in i databasen? Yes, samma gäller pris. Här har jag tex 100.00 som blir 10000. värdena lagras i decimal variabler, som via parametrar av typen OleDbType..Decimal stoppas in i sql satsen. Som sagt fältena i db är valuta respektive Tal/decimal.string till decimal problem i asp.net
Jag gör själva omvandlingen på följande sätt
myDecimal = Convert.ToDecimal("1," + this.Textbox1);
myDecimal ingår i ett objekt som sedan skrivs till db.
Funkar jättebra....på några webhotell, men några andra funkar det inte. Det blir helt enkelt 125 om jag angivit 25 som procentsats.
Jag tror/vet att det handlar om globalisering. Serverns default globalisering. Men HUR kan jag skydda mig mot detta, att alltid min konvertering skall ske på rätt sätt.
Har i web.config angivit följande
<code>
<globalization
requestEncoding="ISO-8859-1"
responseEncoding="ISO-8859-1"
culture="sv-SE"
uiCulture="sv-SE"
/>
</code>
men det hjälper inte. Har labbat lite med
<code>NumberFormatInfo nfi = new CultureInfo( "sv-SE", true ).NumberFormat;</code>
och skickat med nfi i convert metoden utan framgång.
Vad gör jag för fel igentligen?Sv: string till decimal problem i asp.net
using System.Globalisation;
...
myDecimal = Convert.ToDecimal("1."+ this.Textbox1, CultureInfo.InvariantCulture);
Sv:string till decimal problem i asp.net
Kanske är konverteringen ok, men värdet som skrivs i db blir fel. Decimalen faller helt bort. Kanske kan det vara något med jet engine för access. Kan den vara av olika "språk" typer? Värdet soom jag skickar till db är 1.25 och skall in i ett fält Tal-decimal. Ser även att pris inte funkar korrekt. Även här struntar db i decimalen. Kan man speca land/språk i Access db på något sätt?
Plötsligt blev frågan en db fråga ;-)Sv: string till decimal problem i asp.net
Sv:string till decimal problem i asp.net
HAr löst problemet genom att ändra pris och moms till TEXT i db. Känns inte riktigt bra, men det löste problemet. Trodde att landinställningarna fanns med i själva databasen och var oberoende av lokalt installerad access version.
Min teori är iallafall att det är db:n som är problemet med formatinställningarna. Sv: string till decimal problem i asp.net
Sv:string till decimal problem i asp.net