Jam*_*lor 11 sql vb.net asp.net parameters null
我有一个存储过程,使用我提供的参数更新数据库但我无法将NULL传递给存储过程
我需要使NULL的字段是DateTime字段
DB.Parameters.AddWithValue("@date", NULL)
Run Code Online (Sandbox Code Playgroud)
这给了我错误
'NULL'未声明.不再支持'Null'常量; 请改用"System.DBNull"
所以我试过了
DB.Parameters.AddWithValue("@date", DBNull.Value.ToString())
Run Code Online (Sandbox Code Playgroud)
但是1900-01-01 00:00:00.000当它传递""给字段时,这会产生列中的值
我也试过了
DB.Parameters.AddWithValue("@date", DBNull.Value)
Run Code Online (Sandbox Code Playgroud)
但它产生了这个错误
"System.DBNull"类型的值无法转换为"String".
有没有人有任何想法?
Rob*_*lls 16
或者您可以像这样添加参数,如果您的变量为null,则在数据库中为其赋予空值:
DB.Parameters.AddWithValue("@date", myDateTime ?? (object)DBNull.Value);
Run Code Online (Sandbox Code Playgroud)
你需要将其设置为Amit提到的可空类型.
更多详情和背景,请访问http://evonet.com.au/overview-of-c-nullable-types/
Luk*_*keH 13
尝试使用这样的东西,Add而不是AddWithValue:
DB.Parameters.Add("@date", SqlDbType.DateTime).Value = DBNull.Value;
Run Code Online (Sandbox Code Playgroud)