This code works for me very well:
if (someStr == null)
da.InsertCommand.Parameters.Add("@SOMESTR", SqlDbType.NVarChar).Value = DBNull.Value;
else
da.InsertCommand.Parameters.Add("@SOMESTR", SqlDbType.NVarChar).Value = someStr;
But my intuition tells me that there may be a one-liner version of it. Something like:
da.InsertCommand.Parameters.Add("@SOMESTR", SqlDbType.NVarChar).Value = someStr==null ? DBNull.Value : someStr ;
But the one-liner I just posted above fails of course because DBNull.Value doesn’t cast to String.
Is there a way to accomplish the one liner I so desire?
You could cast someStr to an object
For example:
Or you could do as Oded and Servy suggested and use an extension method. While it may add a few lines of code it will save you from duplicate code.
As Servy pointed out, putting it on
objectcould lead to clutter. For this reason I would put it onSqlParameterThen use it like so