DBNull.Value作为可选参数

时间:2012-03-09 09:22:20

标签: c# null optional

是否可以将DBNull.Value作为可选参数传递? 我试过C#

private void CallSP(string param0, string param2 = DBNull.Value)
{
}

它给出了错误。我需要在这个方法中调用一个Stored过程,所以我传递了DBNull.Value。 在SQL Server中,'DBNull.Value'和'null'被视为相同吗?我应该传递'null'而不是'DBNull.Value'???

1 个答案:

答案 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
    ...
}