• Khi hai hoặc nhiều người dùng truy xuất dữ liệu trong cùng một hàng của một bảng cơ sở dữ liệu cùng một lúc, nó được gọi là đồng thời. Vì ADO.NET sử dụng cấu trúc dữ liệu bị ngắt kết nối, hệ thống quản lý cơ sở dữ liệu không thể ngăn chặn điều này xảy ra.
• Nếu hai người dùng cố gắng để cập nhật hàng tương tự trong một bảng cơ sở dữ liệu cùng một lúc, những thay đổi của người dùng thứ hai có thể ghi đè lên các thay đổi được thực bởi người sử dụng đầu tiên. Dù có hay không điều đó xảy ra phụ thuộc vào sự kiểm soát đồng thời các chương trình sử dụng.
• Với đồng thời lạc quan, chương trình kiểm tra để xem liệu hàng cơ sở dữ liệu đó sẽ được cập nhật hay xóa đã được thay đổi kể từ khi nó được lấy ra. Nếu có, một ngoại lệ xảy ra đồng thời và các bản cập nhật hoặc xóa được từ chối. Sau đó, chương trình sẽ xử lý các trường hợp ngoại lệ.
• Nếu đồng thời lạc quan không có hiệu lực, các chương trình không kiểm tra để xem liệu một hàng đã được thay đổi trước khi một bản cập nhật hoặc xóa diễn ra. Thay vào đó, các hoạt động tiến hành mà không cần ném một ngoại lệ. Điều này được gọi là "cuối cùng trong chiến thắng" vì bản cập nhật mới sẽ ghi đè lên bất kỳ bản cập nhật trước đó. Và điều này có thể dẫn đến sai sót trong cơ sở dữ liệu.
Làm thế nào để tránh lỗi đồng thời
• Đối với nhiều ứng dụng, lỗi đồng thời hiếm khi xảy ra. Kết quả là, đồng thời lạc quan là đủ bởi vì người dùng sẽ ít khi phải gửi lại một bản cập nhật hoặc xóa mà bị từ chối.
• Nếu đồng thời có khả năng là một vấn đề, một chương trình sử dụng một tập dữ liệu có thể được thiết kế để nó cập nhật cơ sở dữ liệu và làm mới các dữ liệu thường xuyên. Bằng cách đó, lỗi đồng thời ít có khả năng xảy ra.
• Một cách khác để tránh lỗi đồng thời là thiết kế một chương trình để nó lấy và cập nhật chỉ một hàng tại một thời điểm. Bằng cách đó, có ít cơ hội mà hai người dùng sẽ truy xuất và cập nhật cùng hàng cùng một lúc.
đang được dịch, vui lòng đợi..