Oily hair comes from a range of things - uncoloured hair tends to get oilier quicker than coloured, overtouching or brushing/combing hair does not help either. Of course, many people with acne or oily skin find oily hair comes with it, and overwashing or vigorous washing can overstimulate oil production.
In general, try to stretch washing hair to every second day if you can ever afford it, I did and gradually my scalp got used to it. Wash hair with a clarifying to oily type shampoo and do not overcondition hair and try to avoid conditioning the scalp. Dietary changes and zinc consumption may help too.
As for dry shampoo, I find it rather expensive for what it promises. Dont get me wrong, it does work, but baby powder works similarly and I only use it if I really need to. I have long hair, I normally find a quick wash and dry of the front of the hair (the bangs plus a little on the sides) gives me a fresher feeling and takes little time to do.