Übergeben Sie NULL in einem Parameter an ein DateTime-Feld in einer gespeicherten Prozedur

8

Ich habe eine gespeicherte Prozedur, die eine Datenbank mit den von mir bereitgestellten Parametern aktualisiert, aber ich habe Probleme, eine NULL an die gespeicherte Prozedur zu übergeben

Das Feld, das ich NULL machen muss, ist ein DateTime-Feld

%Vor%

Das gibt mir den Fehler

  

'NULL' ist nicht deklariert. Die Konstante 'Null' wird nicht mehr unterstützt. Verwenden Sie stattdessen "System.DBNull"

Also habe ich es versucht

%Vor%

Aber das erzeugt den Wert 1900-01-01 00:00:00.000 in der Spalte, wenn es ein "" an das Feld

übergibt

Ich habe es auch versucht

%Vor%

Aber es erzeugt diesen Fehler

  

Wert des Typs 'System.DBNull' kann nicht in 'String' konvertiert werden.

Hat jemand irgendwelche Ideen?

    
Jamie Taylor 03.03.2011, 14:29
quelle

4 Antworten

12

Versuchen Sie etwas wie das, verwenden Sie Add anstatt AddWithValue :

%Vor%     
LukeH 03.03.2011, 14:38
quelle
12

Oder Sie können Ihren Parameter wie folgt hinzufügen, was ihm einen Nullwert in der Datenbank gibt, wenn Ihre Variable null ist:

%Vor%

Sie müssen es als NULL-fähigen Typ festlegen, wie Amit erwähnt.

Weitere Details und Hintergründe finden Sie unter Ссылка

    
Robbie Mills 09.01.2012 11:40
quelle
2

Versuchen Sie es

Wenn Sie die Klasse und ihre Eigenschaft verwenden und diese Eigenschaftswerte als Parameter verwendet werden, können Sie dies tun

chnage die Signatur der Eigenschaft zu

%Vor%

Auch wenn Ihre Datumsspalte vom Typ varchar ist, dann korrigieren Sie sie auf Date (Sql2008) / DateTime (2005).

// Ändern Sie den Parameter zu diesem

%Vor%

Lassen Sie zu, dass das Feld null akzeptiert und übergeben Sie den Wert dann als

%Vor%     
Amit Ranjan 03.03.2011 15:24
quelle
0

Dies ist ein Beispiel. Es ist Arbeit für mich

%Vor%     
daniele3004 06.10.2017 13:06
quelle

Tags und Links