Well the way I normally execute a SP is to do quite simple.
After opening the connection to SQL I just execute the SP not settin gup any sort of command.
Code:
cn.Open
cn.Execute "Execute StoredProcedure, parameter1, parameter2"
I know it is a very simple way but it works like a charm, never had a problem with this and been used for a good few years now.