For det første ser du ud til at være forvirret over forskellen mellem en DateTime
objekt og den formaterede String
repræsentation af den DateTime
objekt. Now
, eller endnu bedre, DateTime.Now
er allerede en DateTime
objekt, så det giver ingen mening at formatere det som en streng og derefter parse strengen for at få det tilbage til en DateTime
værdi igen. Så du kan simpelthen gøre dette for at opnå det samme:
Dim timestamp As Date = Date.Now
Bemærk, at Date
i VB.NET er et nøgleord, der er en forkortelse for DateTime
, ligesom Integer
er "kort" for Int32
.
For det andet bør du ikke tilføje DateTime
værdier direkte i SQL-kommandostrengen. Du skal bruge en parametriseret forespørgsel. Når du tilføjer DateTime
værdi til SQL-strengen, skal du sikre dig, at den er formateret korrekt (ved at kalde timestamp.ToString(...)
). Desværre afhænger hvilket format der er korrekt, helt af serverens kulturindstillinger. Så det er langt bedre at bruge en DB-parameter, sæt parameterværdien lig med den faktiske DateTime
objekt, og lad derefter DB-udbyderen udføre konverteringen for dig.