För det första verkar du vara förvirrad över skillnaden mellan en DateTime
objekt och den formaterade String
representation av den DateTime
objekt. Now
, eller ännu bättre, DateTime.Now
är redan en DateTime
objekt, så det är meningslöst att formatera det som en sträng och sedan analysera strängen för att få tillbaka den till en DateTime
värde igen. Så du kan helt enkelt göra det här för att åstadkomma samma sak:
Dim timestamp As Date = Date.Now
Observera att i VB.NET, Date
är ett nyckelord som är en förkortning av DateTime
, precis som Integer
är "kort" för Int32
.
För det andra bör du inte lägga till DateTime
värden direkt i SQL-kommandosträngen. Du bör använda en parameteriserad fråga. När du lägger till DateTime
värde till SQL-strängen måste du se till att den är korrekt formaterad (genom att anropa timestamp.ToString(...)
). Tyvärr beror dock vilket format som är rätt helt på serverns kulturinställningar. Så det är mycket bättre att använda en DB-parameter, ställ in parametervärdet lika med den faktiska DateTime
objekt och låt sedan DB-leverantören göra konverteringen åt dig.