Avatar billede unipeg Nybegynder
07. november 2002 - 14:47 Der er 3 kommentarer og
1 løsning

.NET og regional settings

Hej piger.

Jeg har en database på en SQL-server. Serveren er indstillet til danske indstillinger med decimal-adskillelsestegnet ',' - og ikke som det engelske '.'.
Så har jeg min .NET-kode, som absolut vil have det engelske '.' når jeg fx. arbejder med en float. Kan man tvinge den til at acceptere ','? Jeg ønsker ikke at løse problemet med et hack som substituerer '.' med ','.

Her er en stump kode (c#):

...
SqlCommand myCmd = new SqlCommand("INSERT INTO myTable (myFloat) VALUES (@myFloat)", myConnection);
myCmd.Parameters.Add(new SqlParameter("@myFloat", "-1000.25"); // Med denne linie virker det
// myCmd.Parameters.Add(new SqlParameter("@myFloat", "-1000,25"); // Med denne linie fejler nedenstående
// med Exception-message: "Error converting data type nvarchar to float.". Men den vil godt konvertere strengen når den bruger '.'
myCmd.ExecuteNonQuery();
...
Avatar billede kichian Nybegynder
07. november 2002 - 15:05 #1
Du bliver nød til at substituere , med .
Bemærk 2 ting. For det første bruger du SQL til opdatering. Derfor må dine værdier også overholde SQL standarden.
For det andet så definerer regionale instillinger kun hvordan data bliver præsenteret, når de fx skal vises som en streng.

Hvis den værdi som @myFloat skal indeholde allerede ligger i en decimal-variabel, vil følgende selv foretage den korrekte formatering.

float myFloat = -1000.25;
myCmd.Parameters.Add(new SqlParameter("@myFloat", myFloat);
Avatar billede kichian Nybegynder
21. november 2002 - 13:57 #2
double myDouble;

Double.TryParse("-1000,25",System.Globalization.NumberStyles.Float, System.Globalization.NumberFormatInfo.CurrentInfo, out myDouble);

myCmd.Parameters.Add(new SqlParameter("@myFloat", (float) myDouble);
Avatar billede kichian Nybegynder
22. november 2002 - 20:50 #3
Hva' så tøs. Det var et svar.
Avatar billede unipeg Nybegynder
23. november 2002 - 00:47 #4
Jojo. I sidste svar undgår du en manuel substituering. TryParse er min ven.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester