简体   繁体   中英

DBNull.Value as optional parameter

Is is possible to pass DBNull.Value as optional parameter? I tried in C#

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

Its is giving error. I need to call a Stored procedure in this method, so i am passing DBNull.Value. Is'DBNull.Value' and 'null' are treated as same in SQL Server? Shall i pass 'null' instead of 'DBNull.Value'???

DBNull.Value is not a string, and is not a constant (optional parameter values must be constants). The way to do this is to default it to regular null , and handle the null when adding the parameter:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM