Olivarsham
Olivarsham

Reputation: 1731

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'???

Upvotes: 3

Views: 1581

Answers (1)

Marc Gravell
Marc Gravell

Reputation: 1062855

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

Upvotes: 10

Related Questions