I mitt fall fick jag detta undantag även när alla parametervärden angavs korrekt men typen av kommando inte specificerades :
cmd.CommandType = System.Data.CommandType.StoredProcedure;
Detta är uppenbarligen inte fallet i frågan ovan, men undantagsbeskrivningen är inte särskilt tydlig i det här fallet, så jag bestämde mig för att specificera det.