是否可以将DBNull.Value作为可选参数传递? 我试过C#
private void CallSP(string param0, string param2 = DBNull.Value)
{
}
它给出了错误。我需要在这个方法中调用一个Stored过程,所以我传递了DBNull.Value。 在SQL Server中,'DBNull.Value'和'null'被视为相同吗?我应该传递'null'而不是'DBNull.Value'???
答案 0 :(得分:9)
DBNull.Value
不一个字符串,并且不一个常量(可选参数值必须是常量)。执行此操作的方法是将其默认为常规null
,并在添加参数时处理null
:
private void CallSP(string param0, string param2 = null)
{
...
object value = (object)param2 ?? DBNull.Value;
// ^^^ use value in the parameter
...
}