Ωστόσο, θα πρέπει να κατανοήσεις τον μηχανισμό και να διορθώσεις την αιτία που συμβαίνει το λάθος. Η αιτία είναι ότι στο ADO.NET το data access γίνεται με disconnected τρόπο, δηλαδή αφού πάρεις τα data σου στον client, κλείνει η σύνδεση και δεν τα κλειδώνεις στον server με αποτέλεσμα οι επόμενοι χρήστες να μπορούν να τα αλλάξουν ή να τα διαγράψουν κι όταν έρθει η ώρα σου να κάνεις ενημερώσεις να μην υπάρχουν πλέον, οπότε να έχεις exceptions. Θα πρέπει στον κώδικά σου όταν κάνεις το update να χειρίζεσαι τις καταστάσεις όπου:
- προσπαθείς να αλλάξεις μια εγγραφή που πλέον δεν υπάρχει στον server γιατί τη διέγραψε κάποιος άλλος χρήστης
- προσπαθείς να διαγράψεις μια εγγραφή που έχει ήδη διαγραφεί από κάποιον άλλον χρήστη
- προσπαθείς να αλλάξεις μια εγγραφή που έχει ήδη αλλάξει από κάποιον άλλον χρήστη
Αυτά τα προβλήματα σίγουρα θα εμφανιστούν όταν η εφαρμογή σου τρέξει με πολλαπλούς χρήστες ωστόσο μπορεί να εμφανιστούν ακόμα και με έναν χρήστη αν γίνει αρκετά περίπλοκη, με πολλαπλές φόρμες που να δείχνουν τα ίδια data. To να επιλέξεις να *μην* ασχοληθείς με την διαχείριση αυτών των καταστάσεων είναι απλά σαν να σκουπίζεις και να βάζεις τα σκουπίδια κάτω από το χαλί.
Vir prudens non contra ventum mingit