Noté que no ha configurado CommandType en StoredProcedure... No sé si esa es la causa de su problema o no:
cmd.CommandType = CommandType.StoredProcedure;
Yo mismo lo he hecho tantas veces que no puedo contar.
Consejo para activar tu memoria cuando esto arroje excepciones la próxima vez:
Tenga SQL Query Profiler abierto mientras ejecuta su aplicación. Cuando se ejecuta cada comando, muestra el SQL generado y ejecutado en el lado del servidor. Si el SQL generado comienza con sp_executesql
seguido de su consulta, entonces se ejecuta como una consulta normal, es decir, cmd.CommandType = CommandType.Text
, si comienza con exec
, lo más probable es que se ejecute como un proceso almacenado. Asegúrese de generar el SQL correcto para el tipo de consulta que está tratando de ejecutar.