Dalam kasus saya, saya menerima pengecualian ini bahkan ketika semua nilai parameter diberikan dengan benar tetapi jenis perintah tidak ditentukan :
cmd.CommandType = System.Data.CommandType.StoredProcedure;
Ini jelas bukan kasus dalam pertanyaan di atas, tetapi deskripsi pengecualian tidak terlalu jelas dalam kasus ini, jadi saya memutuskan untuk menentukannya.