SQL Server DateTime Akzeptieren NULL

7

Ich habe versucht, meinen Code so kompakt wie möglich zu machen.

Verwenden von Microsoft SQL Server, .NET 2.0

Ich habe ein Datumsfeld in meiner Datenbank, das Nullwerte akzeptiert

%Vor%

Ich nehme den Wert des Textfelds und wandle es in datetime um.

%Vor%

Das Problem, das ich habe, ist, wenn das Formular abgeschickt und das Textfeld leer ist. Ich bekomme diesen Fehler zurück:

  

Zeichenfolge wurde nicht als gültige DateTime erkannt.

Wie stelle ich meinen Code so ein, dass, wenn das Textfeld leer ist, die Zeile in der Datenbank mit NULL ?

erstellt wird

Ich habe versucht, meine Variable auf NULL zu initialisieren, bekomme aber einen Fehler in Visual Studio

%Vor%
  

NULL kann nicht in 'System.DateTime' konvertiert werden, da es sich um einen nicht nullbaren Werttyp handelt.

Hier ist der Data Access Layer, wenn das hilft

%Vor%

Danke

    
Scott 25.01.2013, 12:23
quelle

4 Antworten

13

Tatsächlich kann DateTime nicht null sein. Aber: DateTime? kann sein. Beachten Sie auch, dass null für einen Parameter "nicht senden" bedeutet; Sie würden brauchen:

%Vor%     
Marc Gravell 25.01.2013, 12:27
quelle
3

Verwenden Sie ein Nullable DateTime und TryParse ()

%Vor%     
Chris Gessler 25.01.2013 12:32
quelle
2

Sie könnten leaseExpirey eine Nullwert DateTime - also DateTime? leaseExpirey

machen

Dann können Sie sagen:

%Vor%

Sie müssten auch INSERT_record ändern, um einen DateTime? -Parameter anstelle von DateTime zu akzeptieren.

    
Daniel Kelley 25.01.2013 12:28
quelle
0

Sie sollten DateTime.MinValue verwenden, da DateTime niemals null ist.

    
rpmlins 25.01.2013 12:38
quelle

Tags und Links