I got fed up with my DD questioning every no she got, I always give a reason first time. But i think her thinking is I'm fobbing her off so if she keeps on she might catch me out IYSWIM.
Now, if there's a no, I very pointedly say "XXX is my reason, do you understand?" When she says yes, I then say "good, so I won't need to keep telling you every tim you ask, ok?"
This seems to have stopped the continous pestering although not completely. It sounds harsh, I say it in a non-stroppy, calm way.
We all have bad times - hope you have a lovely birthday party tomorrow with DS2.