Datum-Uhrzeit-Konvertierung problem beim einfügen von Daten in sql-Datenbank
Ich verwendet, um Abfrage:
Dim a As String
a = "INSERT INTO tblVisitor(Name, Sex, TimeIn, EnterDate)
VALUES('"& txtName.Text &"', '"& cboSex.Text &"', '"& Now() &"', '"& DateTime.Parse(cboEnterDate.Text) &"')"
myCommand = New SqlCommand(a, myConnection)
myCommand.ExecuteNonQuery()
........................................
Die cboEnterDate ist mein DateTime-Picker. Dann erhielt ich die Meldung:
Conversion failed when converting date time from character string.
Bitte helfen.
- Bitte überprüfen Sie mit dem debugger den Wert von 'a'.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Indem er eine Zeichenfolge, die Sie a) selbst zu öffnen, um SQL-injection, und b) am Ende konvertieren von Zeichenfolgen in datetimes, um Zeichenfolgen zu datetimes.
Wenn Sie sich stattdessen für die Verwendung von Parametern:
Welche führt nur eine einzige Konvertierung von string in datetime. Obwohl, wenn
cboEnterDate
ist ein DateTimePicker, können Sie vermeiden, behandeln Sie es als eine Zeichenfolge an alle:Nachschlagen verwenden von SQL-Parametern. Der code, den Sie verwenden jetzt ist nicht nur anfällig für parsing-Probleme w/r/t Datumsformate, ist es anfällig für SQL-injection-Angriffe. Erstellen von SQL-Anweisungen über string-Verkettung ist nur eine wirklich, wirklich schlechte Idee.
Ändern Jetzt() bis Jetzt.ToShortTimeString, Dass sollte das problem lösen.
Edit: Hoppla und die DateTime.Parse(cboEnterDate.Text) hinzufügen .ToShortDate zu Ende.
Wenn Sie
DateTime.Parse(cboEnterDate.Text)
es parst den string in ein datetime-Objekt. Senden Sie die ZeichenfolgecboEnterDate.Text
direkt und lassen Sie die SQL server den parsing -