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%Um Nullwert an db zu übergeben, können Sie DBNull.Value verwenden. Bitte versuchen Sie dies
%Vor% 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.
Versuchen Sie etwas wie dies, verwenden Sie Add statt AddWithValue ..
%Vor%Tags und Links sql-server c#