In meinem Fall habe ich diese Ausnahme auch dann erhalten, wenn alle Parameterwerte korrekt angegeben wurden, aber der Befehlstyp nicht angegeben wurde:
cmd.CommandType = System.Data.CommandType.StoredProcedure;
Dies ist in der obigen Frage offensichtlich nicht der Fall, aber die Ausnahmebeschreibung ist in diesem Fall nicht sehr klar, also habe ich mich entschieden, dies zu spezifizieren.