Avatar billede homsabu Nybegynder
16. august 2006 - 09:51 Der er 9 kommentarer og
1 løsning

Visual Studio 2005 og MySQL

Hvad gør man når MySQL bruger "." som komma og visual studio bruger "," som komma??

Det gør det svært at få dem til at snakke sammen... hvordan ændrer man det i enten den ene eller den anden?
Avatar billede nielle Nybegynder
16. august 2006 - 10:02 #1
Hvis du bruger Param,eteres, så er du helt fri for at bekymre dig om den slags foreskelle.
Avatar billede nielle Nybegynder
16. august 2006 - 10:02 #2
Du kan f.eks. læse mere her:

http://www.eksperten.dk/artikler/831
Avatar billede homsabu Nybegynder
16. august 2006 - 10:26 #3
fint nok - tak for dit indspil, men jeg vil hellere ha' ændret så Visual Studio eller MySQL bruger samme komma-seperator!?

Hvordan gør man det?
Avatar billede nielle Nybegynder
16. august 2006 - 10:31 #4
Du kan ikke ændre det i VS. Det er muligt at det an gøres i MySQL, ved at sltte localer til dansk. Jeg er dog ikke klar over hvordan det gøres. :^|

Men jeg vil nu stadigvæl anbefale Parameters. Det slipper du for at tænke på den slags ting, og dels får du faktisk en meget mere sikker applikation ud af det. F.eks. giver det automatisk beskyttelse imod de mere trivielle former for SQL-injection.
Avatar billede nielle Nybegynder
16. august 2006 - 10:34 #5
Du kan altid oversætte mellem tal og kommaer ved at lave en Replace i VS:

double etTal = 134.456;
string etTalStr = etTal.ToString();
etTalStr = etTalStr.Replace(".", ",");  // Konvertere fra engelsk decimal-punktum til dansk -komma.
Avatar billede neonkrebs Nybegynder
16. august 2006 - 14:25 #6
Spørgsmålet giver ikke nogen mening.

Data-typer har ikke nogen formatteringsinformation gemt. Dvs at et decimal-tal i et program kun består af 2 tal og ikke ved noget om hvordan det skal se ud, når det skal vises frem (konvereteres til string).

Hvilket interface/connector bruger du mellem dit program og databasen?

Kan du beskrive en situation, hvor problemet manifesterer sig?
Avatar billede md_craig Nybegynder
16. august 2006 - 16:27 #7
neonkrebs >>

Mjow, det kan sagtens give mening, for hvordan er det nu lige med SQL statements?, de er jo søreme tekst baserede, ergo kan en fejl nemt indfalde der når man prøver at:

INSERT x (minDouble) INTO y (23,45);... (Lidt seudo, men giver pointen)...

så vil den double jo typisk være lagret som en double i prgrammet måske... der kender systemet intet til om vi bruger ',', '.' eller 'hulabulla' som decimal seperator... men i det øjeblik du skal smide det ind i dit statement vil det bliver konverteret til string (ToString), hvad end du gør:

"INSERT x (minDouble) INTO y ("+val+");";
"INSERT x (minDouble) INTO y ("+val.ToString()+");";
string.Format(""INSERT x (minDouble) INTO y ({0});",val);
string.Format("INSERT x (minDouble) INTO y ({0});",val.ToString());

Når programmet kører med dansk kulture, så bliver det hele pluselig inficeret med kommaer over det hele...

------------------- homsabu >>

Som nielle siger så vil Parameters være din bedste ven, men som en der enten er lidt nybegynder eller som bare har været vandt til de vanedannende SQK sætninger og jeg skal gi dig i meget lang tid, vil man nok godt kunne lide at fortsætte... måske det er derfor du ikke er vild med at skifte... ok Fair nok...

Så er der andre mulgiheder, enten bruger du en InvariantCulture eller US/UK (kan ikke helt huske hvordan Invariant Culture er) når du knovertere alle dine data mellem MySQL og dit program, eller du finde ud af hvordan du ændre culture i enten Windows (For det er det der vil slå igennem i VS), eller i din MySQL... jeg vil anbefale dig at bruge en Culture der passer til din MySQL, hvilket vil betragtes som mange programmører osv for at være "den normale" culture...
Avatar billede homsabu Nybegynder
17. august 2006 - 08:55 #8
tak til alle for svar - men har løst det ved at ændre alle beløb til at være i øre, og slipper dermed helt for kommatallene...
Avatar billede Syska Mester
17. august 2006 - 15:56 #9
Det var da en træls måde ....
Avatar billede nielle Nybegynder
17. august 2006 - 22:58 #10
Tja, jeg synes faktisk også at det lyder som den helt forkerte måde at løse det problem på.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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