Un DataReader ouvert est déjà associé à cette commande et doit d’abord être fermé
Cela peut se produire si vous exécutez une requête tout en itérant sur les résultats d’une autre requête. L’exemple que vous fournissez n’indique pas clairement où cela se produit car il n’est pas complet.
Une chose qui peut causer cela est le chargement paresseux (lazy loading) déclenché lors de l’itération sur les résultats d’une requête.
Cela peut être facilement résolu en activant MARS dans votre chaîne de connexion. Ajoutez MultipleActiveResultSets=true à la partie fournisseur de votre chaîne de connexion (là où Data Source, Initial Catalog, etc. sont spécifiés).