Avatar billede fuldstop Nybegynder
23. juni 2012 - 18:38 Der er 7 kommentarer og
1 løsning

DateTime.ParseExact til database - ASP.NET (VB) - Access (mdb)

Jeg prøver at skrive nedenstående dato fra en form ind i en access database.

Når f.eks jeg skriver Response.Write (Request.Form("Opgaver_Kalender") , skrives datoen som følgende 11-06-2012 (dd-MM-yyyy)

Når jeg skriver den ind i databasen med nedenstående, får jeg følgende dato: 06-11-2012 (MM-dd-yyyy)

strSQL = "Insert into Tabel1 (dato) values('" & DateTime.ParseExact(Request.Form("Opgaver_Kalender"), "dd-MM-yyyy", Nothing) & "')"

Hvordan f&/%&/(#¤ får jeg den til at skrive det danske format i databasen? Synes snart jeg har prøvet alt, f.eks DateTime.ParseExact og Convert.ToDateTime, men lige lidt hjælper det.

Har Culture="da-DK" UICulture="da" i Page directive. Dog skal det nævnes at serveren (iis) som jeg har .aspx og database filen på er med en-GB dato format, altså MM-dd-yyyy (må desværre ikke ændre dette :)).
Avatar billede fuldstop Nybegynder
23. juni 2012 - 18:42 #1
Vil gerne have noget der virker cross platform, kan godt få det til at virke vis det laves sådan DateTime.ParseExact(Request.Form("Opgaver_Kalender"), "MM-dd-yyyy", Nothing)

men flytter jeg ferefter aspx filen over på en anden server med dansk setup, laves det forkert igen :(
Avatar billede fuldstop Nybegynder
23. juni 2012 - 20:48 #2
undskyld, men kort datoformat på serveren er ikke en-Gb, men dags dato skrives 6/23/2012
Avatar billede fuldstop Nybegynder
23. juni 2012 - 22:03 #3
Må lige prøve at se om databasen har det bedre med iso formatet, yyyy-MM-dd, i morgen (tilbage på arbejdet :))
Avatar billede neoman Novice
23. juni 2012 - 22:29 #4
Access SQL skal have det serveret på US-facon (eller på en entydig måde) uanset hvilket locale da har sat. Så "6/11/2012" vil af Access SQL altid blive opfattet som 11. juni. "11 JUN 2012" virker også, såvel som "2012-06-11"

Din  SQL fejler, fordi i SQL'en har du en implicit conversion til string fra DateTime, og denne kører efter din culture, og så er du tilbage ved udgangspunktet.

Se her:http://bytes.com/topic/asp-net/answers/567559-datetime-parseexact-method
Avatar billede arne_v Ekspert
23. juni 2012 - 23:30 #5
Brug parameters saa behoever du ikke taenke paa format !
Avatar billede fuldstop Nybegynder
24. juni 2012 - 09:08 #6
Har vist misforstået konceptetet omkring DateTime.ParseExact.

Bruger - Convert.ToDateTime(Request.Form("Opgaver_Kalender")).ToString("yyyy-MM-dd") - hvilket virker efter hensigten.

Men mener dog at man skal passe på med dd-MMM-yyyy, da den fejler i maj og okt måned, sikkert pga. at det engelske format er may og oct i disse to måneder.
Avatar billede fuldstop Nybegynder
24. juni 2012 - 09:37 #7
Så kan access også forstå dd-MMM-yyyy, hvis jeg ændrer kulturen til en_GB ("maj og okt" bliver dermed til "may og oct".

Convert.ToDateTime(Request.Form("Opgaver_Kalender")).ToString("dd-MMM-yyyy", New System.globalization.CultureInfo("en-GB"))

Så er det så småt begyndt af gå en smule op for mig :)

Tak for hjælpen, smider du lige et svar!
Avatar billede fuldstop Nybegynder
22. august 2012 - 11:51 #8
Lukket...
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