Usually we get this error while passing DBNull.Value as the value. Can you try the following.
instead of
cmd.Parameters.AddWithValue("@imgdata", SqlDbType.Image).Value = DBNull.Value;
use the following.
SqlParameter imageParameter = new SqlParameter("@imgdata", SqlDbType.Image);
imageParameter .Value = DBNull.Value;
cmd.Parameters.Add(imageParameter );