В моя случай получих това изключение, дори когато всички стойности на параметрите бяха предоставени правилно, но типът на командата не беше посочен:
cmd.CommandType = System.Data.CommandType.StoredProcedure;
Очевидно това не е така във въпроса по-горе, но описанието на изключението не е много ясно в този случай, затова реших да уточня това.