Dans mon cas j'ai reçu cette exception alors même que toutes les valeurs des paramètres étaient correctement renseignées mais que le type de commande n'était pas précisé :
cmd.CommandType = System.Data.CommandType.StoredProcedure;
Ce n'est évidemment pas le cas dans la question ci-dessus, mais la description de l'exception n'est pas très claire dans ce cas, j'ai donc décidé de le préciser.