Tôi nhận thấy rằng bạn chưa đặt CommandType thành StoredProcedure ... Tôi không biết đó có phải là nguyên nhân gây ra sự cố của bạn hay không:
cmd.CommandType = CommandType.StoredProcedure;
Tôi đã làm điều này rất nhiều lần bản thân tôi không thể đếm được.
Mẹo để kích hoạt bộ nhớ của bạn khi điều này xảy ra ngoại lệ vào lần tiếp theo:
Mở Hồ sơ truy vấn SQL trong khi bạn đang chạy ứng dụng của mình. Khi mỗi lệnh thực thi, nó sẽ hiển thị SQL được tạo và chạy ở phía máy chủ. Nếu SQL được tạo bắt đầu bằng sp_executesql
theo sau là truy vấn của bạn, sau đó nó được chạy như một truy vấn thông thường - tức là cmd.CommandType = CommandType.Text
, nếu nó bắt đầu bằng exec
, rất có thể nó được chạy dưới dạng proc được lưu trữ. Đảm bảo rằng bạn đang nhận được SQL chính xác được tạo cho loại truy vấn mà bạn đang cố gắng chạy.