Übergeben von null an eine DataTable aus einer bedingten Anweisung mit einer einzigen Zeile, die Zeichenfolgenwerte analysiert

7

Ich habe eine App, die eine Textdatei mit fester Breite durchläuft, jede Zeile in einer String-Variablen liest und die Methode .Substring () verwendet, um Daten für ein bestimmtes Feld zu finden. Für ein gegebenes Feld prüft es, ob die Inhalte einfach Leerzeichen sind oder ob tatsächlich "Daten" darin enthalten sind, d. H. Alles außer Leerzeichen. Wenn Daten vorhanden sind und diese Daten beispielsweise ein Datum darstellen, wird DateTime.Parse () für diese Daten ausgeführt und an ein Feld vom Typ datetime in einer C # -DataTable übergeben. Wenn es jedoch keine Daten gibt - nur Leerzeichen, möchte ich einfach einen Nullwert an das Feld übergeben. Hier ist ein Codeschnipsel zur Veranschaulichung:

%Vor%

Mein Problem ist, dass wenn ich versuche, dies auszuführen, es einen Fehler ausgibt, der besagt, dass es einen DBNull ( Cannot set Column 'Application_Date' to be null. Please use DBNull instead. )

will

Aber wenn ich versuche, einfach einen DBNull zu übergeben, sagt er mir, dass er nicht zwischen DateTime und DBNull ( Type of conditional expression cannot be determined because there is no implicit conversion between 'System.DateTime?' and 'System.DBNull' )

konvertieren kann

Was fehlt mir hier?

    
Tom Miller 07.03.2011, 18:34
quelle

1 Antwort

28

Sie müssen DateTime auf object umwandeln, um es in der Bedingung zu verwenden:

%Vor%     
SLaks 07.03.2011, 18:37
quelle