Use the comReleaser object when you are done. You have to use it on the cursors, tables, featureclasses, features, rows, cursors etc. or else you will still have objects with a connection open. It is actually quite tricky. Even if you just access a object through the property of another object, will will end up with a reference to that object in memory not assigned to a variable... Make sure you assign these to a variable so you can release it later. I like to make a using block with a new comreleaser and add all the variables to the be managed by the comreleaser, when the using block end the comreleaser gets destroyed and releases all the references it manages.