Có thực hành tốt để có một đối tượng SqlConnection được chia sẻ trong một ứng dụng .NET để sử dụng cho tất cả các kết nối cơ sở dữ liệu của bạn hay bạn nên có một riêng biệt mỗi khi bạn truy nhập cơ sở dữ liệu?SqlConnection được chia sẻ
Tôi hiện đang chia sẻ và dường như sắp gặp sự cố đột ngột. Có vẻ như tôi không thể sử dụng một chia sẻ khi tôi cần sử dụng chế độ xác thực SQL thay vì chế độ xác thực của Windows. Tôi vừa thử lần đầu tiên sử dụng xác thực SQL và nó đã cho tôi lỗi này khi tôi thử sử dụng cùng một kết nối lần thứ hai:
Đã có một DataReader mở được liên kết với Lệnh này phải đóng trước.
Nếu bạn đang nói "không sử dụng MARS" - bạn có lý do cụ thể nào không? Out of curiosity ... –
http://blogs.msdn.com/sqlnativeclient/archive/2006/09/27/774290.aspx thảo luận về một số âm bản để sử dụng MARS – RichardOD
Mô hình cách ly giao dịch của MARS không đầy đủ, như trong không hoàn toàn được xác định theo lý thuyết. Kết quả là máy chủ có thể bị 'nhầm lẫn', vì liên kết được đăng bởi Richard thừa nhận. Cái 'nhầm lẫn' đó thường có nghĩa là số lượng tương tác có thể quá lớn và không phải tất cả các đường dẫn mã trong máy chủ đều được kiểm tra và xác thực. –