Tôi có một số C# trong đó tôi tạo trình đọc trên kết nối (ExecuteReader
), sau đó cho mỗi hàng trong trình đọc đó, hãy thực hiện một lệnh khác (với ExecuteNonQuery
). Trong trường hợp này tốt hơn là tôi sử dụng MultipleActiveResultSets=True
trên kết nối của mình hoặc sử dụng nhiều kết nối?MultipleActiveResultSets = Đúng hay nhiều kết nối?
Trả lời
Nhiều bộ kết quả hoạt động (MARS) được thêm cụ thể cho loại thao tác này để bạn không phải mở hai kết nối cùng một lúc để đọc từ SqlDataReader VÀ thực hiện các đợt bổ sung.
MARS tương thích với SQL Server 2005 trở lên. Trích dẫn từ tài liệu MSDN:
Trước khi sự ra đời của Nhiều Kết quả Sets hoạt động (MARS), nhà phát triển đã phải sử dụng một trong hai nhiều kết nối hoặc con trỏ phía máy chủ để giải quyết tình huống nhất định.
Để biết thêm thông xem:
Làm việc dụ đọc và cập nhật dữ liệu:
MSDN Library - Manipulating Data (MARS) cuộn xuống 'Đọc và cập nhật dữ liệu với MARS'
Điều này cũng giống như tôi biết lý do MARS được thêm vào, vì vậy tôi nghĩ bạn nên sử dụng nó.
Cách tốt nhất để kiểm tra điều này là kích hoạt SQLServer Profiler và xem điều gì thực sự xảy ra ở phía máy chủ.
Tôi đoán là nó sẽ không tốt hơn vì bạn đang sử dụng ExecuteNonQuery(). Vì vậy, trên thực tế, bạn không làm việc với nhiều kết quả.
Đó là những gì tôi nghĩ khi tôi viết mã, nhưng nếu tôi không có MultipleActiveResultSets = True thì tôi vẫn nhận được một "Đã có một DataReader mở được liên kết với Lệnh này phải được đóng trước tiên." ngoại lệ trên ExecuteNonQuery. – Sprintstar
- 1. Cách bật MultipleActiveResultSets
- 2. Nhiều kết nối websocket
- 3. vòng kết nối geojson, được hỗ trợ hay không?
- 4. Làm thế nào để chỉ mục đúng cách một bảng liên kết cho kết nối nhiều-nhiều trong MySQL?
- 5. MySQLNonTransientConnectionException: Quá nhiều kết nối
- 6. Kết nối nhiều trong Codeigniter
- 7. C# Lấy đối tượng DbConnection đúng bằng chuỗi kết nối
- 8. Chuỗi kết nối Các phương pháp hay nhất
- 9. netdb.h không nối đúng
- 10. Kết nối Bluetooth; không thể gửi các chuỗi đúng cách
- 11. Để đóng hay không đóng một kết nối Oracle?
- 12. Writer Monad có đảm bảo kết nối đúng không?
- 13. Cách nào đúng để ngắt kết nối MediaController?
- 14. Multipleactiveresultsets trong Entity Framework 4.1 Code Đầu tiên
- 15. Khách hàng SignalR với nhiều kết nối
- 16. SQLSTATE [08004] [1040] Quá nhiều kết nối
- 17. Nhiều DB kết nối trong đường ray
- 18. Các yêu cầu với nhiều kết nối
- 19. Nhiều sự cố kết nối Bluetooth Android?
- 20. Lỗi MySQL "Quá nhiều kết nối"
- 21. Nhận nhiều chuỗi kết nối từ web.config
- 22. Chuỗi kết nối EDMX
- 23. Tại sao có quá nhiều kết nối sp_resetconnings cho kết nối gộp C#?
- 24. Sự cố kết nối cơ sở dữ liệu SQL Azure - Quá nhiều kết nối?
- 25. WebRTC xử lý nhiều kết nối như thế nào?
- 26. Kết nối Perl Kết nối
- 27. Cầu nối đúng cho ARC?
- 28. EF4 và Chuỗi kết nối
- 29. Làm cách nào để lập chỉ mục đúng bảng liên kết nhiều-nhiều?
- 30. Kết nối nhiều hàng thành dòng trong MS Access
+1 để đề cập đến SQL Server 2005 trở lên – pilotcam