Innanzitutto, sembri confuso sulla differenza tra un DateTime
oggetto e la String
formattata rappresentazione di quel DateTime
oggetto. Now
o, meglio ancora, DateTime.Now
è già un DateTime
oggetto, quindi non ha senso formattarlo come stringa e quindi analizzare la stringa per riportarla in un DateTime
valore di nuovo. Quindi, puoi semplicemente farlo per ottenere la stessa cosa:
Dim timestamp As Date = Date.Now
Nota che in VB.NET, Date
è una parola chiave che è l'abbreviazione di DateTime
, proprio come Integer
è "abbreviazione" di Int32
.
Secondo, non dovresti aggiungere DateTime
valori direttamente nella stringa di comando SQL. Dovresti usare una query con parametri. Quando aggiungi il DateTime
valore alla stringa SQL, devi assicurarti che sia formattata correttamente (chiamando timestamp.ToString(...)
). Sfortunatamente, tuttavia, quale formato è corretto dipenderà interamente dalle impostazioni delle impostazioni cultura del server. Quindi, è molto meglio usare un parametro DB, impostare il valore del parametro uguale all'effettivo DateTime
oggetto, quindi lascia che il provider di database esegua la conversione per te.