Thử trả về SQL% ROWCOUNT.
Theo MSDN, DbCommand..ExecuteNonQuery sẽ luôn trả về -1 cho các cuộc gọi thủ tục được lưu trữ:
Nếu tôi nhớ không nhầm từ những ngày sử dụng nhiều procs được lưu trữ, tôi tin rằng bạn sẽ cần sử dụng đối số đầu ra để trả về những thứ như số hàng được cập nhật.