Здесь важно понять, что словосочетание "день рождения" состоит из двух слов: день и рождения. Первое из них стоит в именительном падеже и является главным, а второе - в родительном и оно зависимое. Обычно в подобных случаях, падеж меняется только у главного слова, а зависимое остаётся неизменным.
А вопрос этот часто возникает потому, что многие воспринимают это сочетание как единое слово, но это не так.
Чтобы не путаться можно попробовать в качестве проверки взять такие праздники как День Победы или день свадьбы и изменить их по падежам. Обычно в них не ошибаются и меняют только слово день. Так должно быть и с днём рождения.
Поэтому правильный вариант: была на дне рождения.
Если слово рождение используется как главное, то тогда оно изменяется по падежам. Например, поздравляю с рождением дочки, оно был рад рождению сына, рождением ребёнка они порадовали стариков, и т.д.