You should take care of your skin first, before you do anything else!
Foundation ( all makeup actually) will only look as good as the skin does beneath it.
You can spend hundreds of dollars finding the "perfect" foundation, but if your skin is not in tact then it wont matter.
Now that my lecturing is out of the way ( lol ) I want you to consider what kind of skin you think you have and the skincare products you are currently using. Are you always oily or mostly dry ? Or both ? Or neither ?
It could be that you are wearing a moisturizer underneath your foundation that is too emolliant and as a result is causing your foundation to slip and slide everywhere. If that's the case, then make sure that you wait atleast 20 mins before applying your makeup so that your moisturizer has had a chance to sink in.
If your skin is combo and you arent wearing enough moisturizer then you may notice your skin sucking up the foundation to compensate for the lack moisturizer is it not receiving - resulting in your skin looking oily in some place and dry in others.
Not setting your foundation with a powder or applying skincare products with ingredients that are actively working on your skin ( i.e benzoyl peroxide, glycolic acid, vitamin c ) are all additional reasons why you maybe experiencing oiliness.
All in all you should probably see a dermatologist and/'or head to a local Sephora and talk to one of their skin care specialists about starting a skin care regime that will work for you.
A primer is one way to go, but I also have extremely oily skin and I think the best solution is to get your oiliness under control. Look at the products you are using, do they have oils in them that could be making the problem worse? Is your moisturizer thick and heavy? The best solution that I've found for my oily skin has been Clinique. I use the acne solutions. I find that the toner/exfoliator and moisturizer from the acne solutions are AMAZING at controlling oil. The toner/exfoliator has salicylic acid as well as tiny powders that stay on your skin to help absorb oil. The moisturizer contains benzoyl peroxide. I've found that it helps with acne (I don't know if you have that problem or not) and helps control oil. If, however, these are too harsh for your skin you can try an oil control primer or change your moisturizer. Clinique has a three step system made specifically for oily skin (cleanser, toner, moisturizer). Their moisturizer for oily skin is very lightweight, almost like a gel. There are many oil control products out there, I hope you find the one for you!
I have oily skin and used to have the same problem as you with my makeup disappearing. Try Givenchy Mister Mat Mattifying Foundation Primer, it has made a huge difference in my makeup staying in place. It goes on really smooth, feels light and keeps foundation from settling in my pores.
Hope this helps!
The best products that I have found to help stop my extreme oiliness is to apply an oil-controlling face primer such as Make Up For Ever All Mat Foundation Primer which you can read more about at: http://www.sephora.com/browse/product.jhtml?id=P16
By using one of the oil-controlling primers I listed above and the powder I mention below, you probably don't need to change foundations unless you just want to change to an oil-controlling one to further help your oiliness. But I thought I'd tell you about this foundation anyway just in case you need the information in the future. Make Up For Ever's All Mat + Mattifying Foundation is a great foundation for oily skin. It's a shine controlling, oil-free, water-resistant, complete coverage liquid foundation that you can read more about at: http://www.sephora.com/browse/product.jhtml?id=P17
You can also use MUFE's "Foundation Shade-Finder" to help you choose the correct color for your skin tone which you can find at: http://sephora.com/browse/brand_hierarchy.jhtml?br
Also, I would recommend setting your foundation with Urban Decay’s De-Slick Mattifying Foundation Powder which is a colorless, shine-controlling powder that comes in a handy mirrored compact so you can carry it with you for touchups throughout the day. You can find it at: http://www.sephora.com/browse/product.jhtml?id=P21
I hope this helps you.
I would definitely say you need a primer I found that when I used one it worked really well. I liked the bare escentuals bare minerals primer but I also found that it dried out my skin horribly.