05. oktober 2003 - 20:07Der er
6 kommentarer og 1 løsning
, eller . som tusindtalsseperator i C#/MS SQL
Jeg har et problem, som for mig lyder alt for simpelt, men som stadig volder mig problemer...
I en tabel i mssql har jeg en række tal (decimal), som jeg via C# skal modificerer og derfefter lægge tilbage i en ny tabel. Problemet er: Tallene i DB er komma-sepereret (ex. 57,95), men prøver jeg at lægge disse tal tilbage (efter at have været konverteret til enten double eller decimal, vil mssql ikke tage imod dem. Indtaster jeg direkte i Query Analyzer, vil den have tal i form af 57.95 altså et punktum...
Jeg har prøvet at bruge metoden Replace(",", ".") på de indkomne værdier for at kunne lægge dem tilbage med punktumm men nu fjernes punktummet helt i DB og 57,95 bliver fx 5795 - ikke så fedt...
Alt i alt behøver jeg bare at få kommatal ind i C# og lægge dem tilbage i DB igen - Jeg forstår bare ikke hvordan det kan være så svært.
Håber i forstår hvor jeg vil hen og håber i kan give en hånd med. Tak.
SQL sproget kræver at tal er med punktum. Hvis din regional settings i Windows er sat til dansk, så vil et tal (når det konverteres til en streng) have komma som seperator.
Så virker det, mange tak for hjælpen! Det viste sig at jeg skulle beholde værdierne fra DB, som double-værdier, og ved afsendelse til ny DB-tabel brugte jeg:
Lige en bonuskommentar... Det var nødvendigt at gemme de nye tal, som float i stedet for decimal, som var det oprindelige format, ellers kom ingen decimaler med... Kan en eller anden fortælle mig hvordan det hænger sammen? De oprindelige data ligger som decimal-typer (fx 0,83327), men de nye tal bliver afrundet i dette format (til 0). Kan decimal-typen ikke håndtere decimaler??? :-/
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.