07. november 2002 - 14:47Der 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(); ...
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.
Jojo. I sidste svar undgår du en manuel substituering. TryParse er min ven.
Synes godt om
Ny brugerNybegynder
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.