Wie fügt man null in die Spalte datetime type in sql server ein

8

Ich habe eine Tabelle, in der einige Spalten vom Typ datetime stehen. Ich verwende eine gespeicherte Prozedur, um Werte in die Tabelle einzufügen. In der gespeicherten Prozedur habe ich Variablen, die Null für das Einfügen in die Tabelle akzeptieren. Mein Problem ist, wenn ich versuche, einen Null-Wert in die Datetime-Spalte meiner Tabelle einzufügen, wird ein Fehler ausgegeben. Mein Code ist wie.

%Vor%     
social 07.08.2013, 08:41
quelle

9 Antworten

11
%Vor%

Der Schlüssel ist DBNull.Value. Ich stelle mir vor, Sie haben eine NULL-fähige DateTime-Variable, also DateTime? someVariable . Sie können es für null testen und wenn es DBNull.Value verwendet (wie oben gezeigt).

    
Dr Schizo 07.08.2013 08:45
quelle
5
%Vor%     
Rahul 25.03.2014 09:29
quelle
3

Um Nullwert an db zu übergeben, können Sie DBNull.Value verwenden. Bitte versuchen Sie dies

%Vor%     
RAJESH KUMAR 07.08.2013 10:17
quelle
2

Um null in eine Datenbankspalte einfügen zu können, muss die Spalte null s akzeptieren. Öffnen Sie die Tabelle im Designer, und prüfen Sie, ob die relevante Spalte NULL-Werte zulässt oder nicht. Wenn dies nicht der Fall ist und Sie versuchen, einen Nullwert einzufügen, erhalten Sie den Fehler:

  
    

Der Wert NULL kann nicht in die Spalte 'InsertDate' eingefügt werden, Tabelle 'TableName'; Spalte erlaubt keine Nullen.

  

Da Sie gespeicherte Prozeduren verwenden, um Daten einzufügen, würde ich empfehlen, Standardwerte für die Parameter auf Prozedurebene zu verwenden, anstatt den Anwendungscode zu belasten. Dann können Sie den Parameter einfach nicht auf der Anwendungsseite setzen und er würde richtig funktionieren:

%Vor%

und auf der C # -Seite, mach einfach:

%Vor%

Beachten Sie, dass es keine else -Verzweigung gibt. Wenn also InsertDate leer ist, wird der Parameter überhaupt nicht gesendet.

    
SWeko 07.08.2013 09:02
quelle
1

Sie sollten null nur direkt als Parameterwert angeben können:

%Vor%

Wurde auch auf String.IsNullOrWhitespace() umgeschaltet, um nach einer leeren Zeichenfolge zu suchen.

    
Lloyd 07.08.2013 08:44
quelle
1

Versuchen Sie etwas wie dies, verwenden Sie Add statt AddWithValue ..

%Vor%     
Cuteboy_Max 22.04.2016 11:25
quelle
0

Versuchen Sie es mit:

%Vor%     
beastieboy 07.08.2013 08:56
quelle
0

Gehen Sie in der gespeicherten Prozedur wie folgt vor:

%Vor%     
zxc 07.08.2013 08:43
quelle
0

versuche dies zu benutzen

%Vor%     
Samad Kakkad 26.11.2017 06:09
quelle

Tags und Links