Você precisa definir isso como true se quiser vincular por nome. O padrão é vinculado pela ordem do parâmetro adicionado. cmd.BindByName = true;