Saya perhatikan bahwa Anda belum menyetel CommandType ke StoredProcedure... Saya tidak tahu apakah itu penyebab masalah Anda atau bukan:
cmd.CommandType = CommandType.StoredProcedure;
Saya telah melakukan ini berkali-kali sehingga saya tidak dapat menghitungnya.
Kiat untuk memicu ingatan Anda saat ini memunculkan pengecualian di lain waktu:
Buka SQL Query Profiler saat Anda menjalankan aplikasi. Ketika setiap perintah dijalankan, itu menunjukkan SQL yang dihasilkan dan dijalankan di sisi server. Jika SQL yang dihasilkan dimulai dengan sp_executesql diikuti oleh kueri Anda kemudian dijalankan sebagai kueri biasa - yaitu cmd.CommandType = CommandType.Text , jika dimulai dengan exec , kemungkinan dijalankan sebagai proc tersimpan. Pastikan Anda mendapatkan SQL yang benar yang dihasilkan untuk jenis kueri yang Anda coba jalankan.