将参数中的NULL传递给存储过程中的DateTime字段

问题描述

使用Add而不是尝试这样的事情AddWithValue

DB.Parameters.Add("@date", sqlDbType.DateTime).Value = dbnull.Value;

解决方法

我有一个存储过程,可以使用提供的参数更新数据库,但是在将NULL传递给存储过程时遇到了麻烦

我需要使NULL的字段是DateTime字段

DB.Parameters.AddWithValue("@date",NULL)

这给了我错误

未声明“ NULL”。不再支持’Null’常量;使用’System.DBNull’代替

所以我尝试了

DB.Parameters.AddWithValue("@date",DBNull.Value.ToString())

但这会在1900-01-01 00:00:00.000将a传递""给字段时产生列中的值

我也试过了

DB.Parameters.AddWithValue("@date",DBNull.Value)

但是会产生这个错误

类型’System.DBNull’的值不能转换为’String’。

有人有想法吗?