Ich habe den folgenden Code, um zu überprüfen, ob ein Datetime-Wert Null ist oder einen Wert hat. Wenn es null ist, möchte ich, dass es als leere Zeichenfolge zurückgegeben wird, andernfalls sollte es eine Zeichenfolge des Werts sein, der es enthält.vb.net Datumswerte werden in Zeit umgerechnet
Der Else
Teil der Anweisung funktioniert, er konvertiert den Wert in eine Zeichenfolge. Wenn der als datetime übergebene Wert jedoch null ist, gibt er Nothing
nicht zurück, sondern setzt den Wert auf '12: 00:00 Uhr ", was mir an anderen Stellen des Projekts Probleme bereitet.
Wie kann ich diese Funktion so anpassen, dass null Datetime-Werte als leere Zeichenfolgen zurückgegeben werden?
Public Shared Function dbToDate(o As Object) As DateTime
If o Is DBNull.Value Then
Return ""
Else
Return Convert.ToDateTime(o)
End If
End Function
zurückgeben Bitte sagen Sie mir, Sie werden nicht in eine SQL-Zeichenfolge setzen? Weil das ** schrecklich wäre **. Es ist ein sehr starker Hinweis darauf, dass Sie Code erstellen, der für SQL-Injection-Attacken anfällig ist. –
Wie ist das anders als [Ihre letzte Frage] (http://stackoverflow.com/q/38654241/1070452)? ... und Datumsangaben müssen noch nicht in Strings für SQL konvertiert werden. – Plutonix
@JoelCoehoorn Nein, dies geht nicht in eine SQL-Zeichenfolge, das nimmt Daten aus der Datenbank mit SQL, aber nicht zurück (noch) –