Search code examples
c#sqldbnull

cmd.Parameters.AddWithValue("@param1",param1 ?? DbNull.Value)


I have int? type value which can be either null or have some value. I want to execute a insert statement using parametrized query to insert accordingly.

int? val1=null; 
SqlCeCommand cmd;
string insert = "insert into table(col1)values(@col_1)";
cmd = new SqlCeCommand();
cmd.CommandText = insert;
cmd.Parameters.AddWithValue("@col_1", val1 ?? Convert.ToInt32(DBNull.Value)));
cmd.Connection = cn1;
cn1.Open();
cmd.ExecuteNonQuery();
cn1.Close();

This code throws format exception error. I even tried

cmd.Parameters.AddWithValue("@col_1", (!val1.HasValue) ? val1 : Convert.ToInt32(DBNull.Value));

How shld it b done?


Solution

  • no need to convert if null set DBNull

    cmd.Parameters.AddWithValue("@col_1", (object)val1 ??DBNull.Value);