Operator '??' cannot be applied to operands of type 'string' and 'System.DBNull'
It's because there is no implicit conversion between string
and System.DBNull
.
Instead of using DBNull.Value, you can use Convert.DBNull:
sqlCommand.Parameters.AddWithValue("@Parameter", table.Value ?? Convert.DBNull);
I believe behind the scenes it is basically doing the same/similar thing as mentioned in other examples (i.e. casting DBNull to object), but it makes it a little simpler/conciser.
There is no automatic conversion between string
and System.DBNull
and so you need to specify the type you want explicitly by adding a cast to object
:
sqlCommandObject.Parameters.AddWithValue("@Parameter",
table.Value ?? (object)DBNull.Value);
Both operands need to be object. Use explicit cast:
(object)table.Value ?? DBNull.Value;