Je remarque que vous n'avez pas défini CommandType sur StoredProcedure... Je ne sais pas si c'est la cause de votre problème ou non :
cmd.CommandType = CommandType.StoredProcedure;
Je l'ai fait tellement de fois moi-même que je ne peux pas compter.
Conseil pour déclencher votre mémoire lorsque cela génère des exceptions la prochaine fois :
Ouvrez SQL Query Profiler pendant que vous exécutez votre application. Lorsque chaque commande s'exécute, elle affiche le SQL généré et exécuté côté serveur. Si le SQL généré commence par sp_executesql
suivi de votre requête, puis il est exécuté comme une requête régulière - c'est-à-dire cmd.CommandType = CommandType.Text
, s'il commence par exec
, il y a de fortes chances qu'il soit exécuté en tant que proc stocké. Assurez-vous que vous obtenez le code SQL correct généré pour le type de requête que vous essayez d'exécuter.