When supplying null values to stored procedures, remember that you have to set the value to DBNull…
if (_UserId == null)
{
cmd.Parameters.Add(new SqlParameter("@UserId",System.DBNull.Value ));
}
else
{
cmd.Parameters.Add(new SqlParameter("@UserId", _UserId));
}