GardensAlive has a product called Knock-out Gnats. It works! It's some sort of BT and you use it as a soil drench so it kills the larvae. It won't kill the adults so definitely also use yellow sticky traps and you will most likely have to repeat it a couple of times before they all die. It costs about $25 for a bag of the stuff but unless you have a huge greenhouse it should last you a lifetime. I bought some years ago (maybe 10?) and still use it when I get an outbreak.