Επειδή είναι ανατύπωση του άρθρου Η πηγή αναφέρεται εδώ, συγχωρέστε με αν υπάρχουν άρθρα που έχουν μεταφερθεί στο παρελθόν χωρίς ένδειξη, επειδή ορισμένα από αυτά δεν μπορούν πλέον να βρουν την πηγή ή για άλλους λόγους.
Εάν προσβάλλεστε, επικοινωνήστε μαζί μου ή διαγράψτε το ή αναφέρετε την πηγή.
Επειδή ήθελα απλώς να συλλέγω καλά άρθρα, αλλά μερικές φορές η σύνδεση αποτυγχάνει, οπότε τώρα πηγαίνω κατευθείαν στον εαυτό μου όταν συναντώ ένα καλό.
Αρχική πηγή http://blog.csdn.net/snowinfish/article/details/11567301
Κατά την εγγραφή δεδομένων στο μοντέλο ADO.NET οντότητας στο VS2012, συνεχίζει να λέει "Δεν χειρίστηκε το DbEntityValidationException" και "Η επικύρωση μιας ή περισσότερων οντοτήτων απέτυχε. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Ιδιότητες EntityValidationErrors.
Δοκίμασα μόνος μου τις επόμενες δύο οντότητες, κυρίως το σφάλμα που προκλήθηκε από το "operate911".
Έλεγξα τις πληροφορίες στο διαδίκτυο και αναφέρθηκα στο παρακάτω άρθρο.
Λύση για τον τρόπο προβολής λεπτομερειών EntityValidationErrors
http://www.cnblogs.com/zhourq/archive/2011/11/03/2234720.html
Ωστόσο, κατά τη σύνταξη της εξαίρεσης, το σύστημα δεν έχει "DbEntityValidationException", το οποίο εικάζεται ότι είναι έλλειψη αναφοράς χώρου ονομάτων.
Έτσι προστέθηκε:
[csharp] προβολή απλού αντιγράφου χρησιμοποιώντας το System.Data.Validation.
Η αντίστοιχη διαδικασία τροποποιείται σε: [csharp] προβολή απλού αντιγράφου Δοκιμάστε { οντότητες. Λειτουργία911.Προσθήκη(λειτουργία911); οντότητες. ΑποθήκευσηΑλλαγών(); } αλιευμάτων (DbEntityValidationException dbEx) {
} Έναρξη, χωρίς προτροπή εξαίρεσης, το "operate911" δεν γράφει δεδομένα στον πίνακα της βάσης δεδομένων. Ο λόγος για τον έλεγχο είναι ότι κατά τη σύνταξη ενός συμπληρωματικού προγράμματος, δεν υπάρχει συμπλήρωση δεδομένων για μια στήλη που δεν επιτρέπεται να είναι κενή και μετά την τροποποίηση, το πρόγραμμα ξεκινά και η δοκιμή είναι επιτυχής.
Ωστόσο, εάν δεν γράψετε μια εξαίρεση, συνεχίστε να ζητάτε το επάνω σφάλμα.
Επιπλέον, η παράμετρος "dbEx" μετά την πρόταση "catch (DbEntityValidationException dbEx)" μπορεί να γραφτεί χωρίς εγγραφή.
Συνεχίστε να είστε άγνωστοι...
09.12 Προσθήκη:
Τα παραπάνω try and catch είναι γραμμένα λανθασμένα και η εξαίρεση δεν ρίχνεται, αλλά αλλάζει σε:
[csharp] προβολή απλού αντιγράφου Δοκιμάστε { var operateSpt = νέο OperateSpt(ymd, timeNow, Operate); οντότητες. OperateSpts.Add(operateSpt); οντότητες. ΑποθήκευσηΑλλαγών(); }
αλιεύματα (DbEntityValidationException ex) { MessageBox.Show(π.χ. Μήνυμα); }
Τα αποτελέσματα φαίνονται στο παρακάτω σχήμα.
Συνεχίστε να είστε άγνωστοι...
Συμπλήρωμα: Επίλυση προβλημάτων.
Αιτία: Τα γραπτά δεδομένα δεν συνάδουν με τις ρυθμίσεις του πίνακα.
Ο λόγος μου είναι ότι σε ένα συγκεκριμένο βήμα, τα γραπτά δεδομένα είναι κενά, αλλά ο αρχικός πίνακας έχει οριστεί σε "δεν επιτρέπεται να είναι κενός", επομένως θα υπάρχει εξαίρεση όταν εκτελεστεί αυτό το βήμα.
Ήμουν πολύ απρόσεκτος και δεν σκέφτηκα ποτέ αυτό το πρόβλημα όταν είδα άλλες λειτουργίες γραμμένες στα δεδομένα όταν κοιτούσα τα δεδομένα.
|