Všiml jsem si, že jste nenastavili CommandType na StoredProcedure... Nevím, jestli je to příčina vašeho problému nebo ne:
cmd.CommandType = CommandType.StoredProcedure;
Sám jsem to udělal tolikrát, že to nedokážu spočítat.
Tip pro spuštění paměti, když to příště vyvolá výjimky:
Při spuštění aplikace mějte otevřený SQL Query Profiler. Po provedení každého příkazu se zobrazí SQL vygenerované a spuštěné na straně serveru. Pokud vygenerovaný SQL začíná sp_executesql
následovaný vaším dotazem a poté je spuštěn jako běžný dotaz – tj. cmd.CommandType = CommandType.Text
, pokud začíná exec
, je pravděpodobné, že bude spuštěn jako uložený proc. Ujistěte se, že získáváte správný SQL generovaný pro typ dotazu, který se pokoušíte spustit.