3

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

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

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

4

1 回答 1

9

DBNull.Value不是字符串,也不是常量(可选参数值必须是常量)这样做的方法是将其默认为常规null,并null在添加参数时处理:

private void CallSP(string param0, string param2 = null)
{
    ...
    object value = (object)param2 ?? DBNull.Value;
    // ^^^ use value in the parameter
    ...
}
于 2012-03-09T09:25:51.487 回答