c# - DBNull.Value 作为可选参数

标签 c# null option-type

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

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

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

最佳答案

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

private void CallSP(string param0, string param2 = null)
{
    ...
    object value = (object)param2 ?? DBNull.Value;
    // ^^^ use value in the parameter
    ...
}

关于c# - DBNull.Value 作为可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9631604/

相关文章:

c# - 使用tasks和ContinueWith来实现调度器

sql - 如何不插入具有空值的双记录

arrays - iOS Swift 3 在过滤数组之前检查每个日期是否有效

swift - 在 swift 中将可为空的 int 转换为 int

c# - XmlCodeExporter 和可为 null 的类型

c# - 应用于 List 派生类的 XmlArray 属性

c++ - 在 C++ 中返回 "NULL reference"?

SQL 在不等于查询中不显示空值?

ios - 在 Swift 中,如果你解开一个 "Implicitly Unwrapped Optional",这是一个双重解包吗?

c# - 完全空白 Unity/Microsoft Store Build 未通过 WACK 测试