Jag märker att du inte har ställt in CommandType till StoredProcedure... Jag vet inte om det är orsaken till ditt problem eller inte:
cmd.CommandType = CommandType.StoredProcedure;
Jag har själv gjort det så många gånger att jag inte kan räkna.
Tips för att aktivera ditt minne när detta ger undantag nästa gång:
Ha SQL Query Profiler öppen medan du kör din app. När varje kommando körs visar det SQL som genereras och körs på serversidan. Om SQL som genereras börjar med sp_executesql
följt av din fråga så körs den som en vanlig fråga - dvs cmd.CommandType = CommandType.Text
, om den börjar med exec
, är chansen stor att den körs som en lagrad proc. Se till att du får rätt SQL genererad för den typ av fråga du försöker köra.