When I add the SQL parameter p to the collection I get an InvalidCastException with the message from the post title.
parentId is a nullable integer and a nullable integer in the database.
Why do I get this exception and how can I solve it?
I do not use stored procedures and I have read the similar threads but they did not help me.
var p = new SqlParameter("ParentId", SqlDbType.Int).Value = parentId ?? (object) DBNull.Value;
cmd.Parameters.Add(p);
You aren’t adding your
new SqlParameter.pis the result ofnew SqlParameter("ParentId", SqlDbType.Int).Value = parentId ?? (object) DBNull.Value. In other words,pitself isDBNull.Value.Split the statement in two, like so:
Alternatively,
Either would make sure
pis the parameter, not the parameter’s value.