ΕΠΙΔΙΌΡΘΩΣΗ: System.ArgumentOutOfRangeException εμφανίζεται περιοδικά με το ADO.NET

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 836874 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Συμπτώματα

Σε ένα ADO.ΚΑΘΑΡΉ εφαρμογή, μπορεί κατά διαστήματα εμφανίζεται το ακόλουθο μήνυμα λάθους:
System.ArgumentOutOfRangeException: Ο δείκτης βρισκόταν εκτός της περιοχής. Πρέπει να είναι μη αρνητικός και μικρότερος από το μέγεθος της συλλογής. Όνομα παραμέτρου: ευρετήριο

Αιτία

Λαμβάνετε αυτό το μήνυμα λάθους, εάν δημιουργήσετε ή να καταστρέψουν τα αντικείμενα που σχετίζονται με το σύνολο δεδομένων (όπως έναΤο DataViewαντικείμενο) σε ένα πρόγραμμα χειρισμού συμβάντων για έναΣύνολο δεδομένωντο αντικείμενο, ή σε ένα αντικείμενο που είναι συσχετισμένος με έναΣύνολο δεδομένωντο αντικείμενο. Για παράδειγμα, το σφάλμα αυτό αναπαράχθηκε σε μια εφαρμογή που περιέχει ένα στοιχείο ελέγχου πλέγματος που η δημιουργία του παιδιούΤο DataViewαντικείμενα σε έναListChangedπρόγραμμα χειρισμού συμβάντων για το πλέγμα. Αυτό επιτρέπει την εσωτερική κατάσταση του υποκείμενουΣύνολο δεδομένωντο αντικείμενο για να αλλάξετε στη διάρκεια μιας λειτουργίας όπου θα πρέπει να παραμείνει στατικό.

Προτεινόμενη αντιμετώπιση

Μια υποστηριζόμενη επείγουσα επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft, αλλά προορίζεται μόνο για τη διόρθωση του ζητήματος που περιγράφεται σε αυτό το άρθρο. Εφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα. Αυτή η επείγουσα επιδιόρθωση, ενδέχεται να λάβετε πρόσθετες δοκιμές. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, συνιστάται να περιμένετε το επόμενο service pack που περιέχει αυτήν την επείγουσα επιδιόρθωση.

Για να επιλύσετε αμέσως αυτό το ζήτημα, επικοινωνήστε με υπηρεσίες υποστήριξης προϊόντων της Microsoft για να αποκτήσετε την επείγουσα επιδιόρθωση. Για μια πλήρη λίστα αριθμών τηλεφώνου υπηρεσίες υποστήριξης προϊόντων της Microsoft και πληροφορίες σχετικά με το κόστος υποστήριξης, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
http://support.Microsoft.com/contactus/?ws=support
ΣημείωσηΣε ειδικές περιπτώσεις, εάν ένας μηχανικός υποστήριξης της Microsoft κρίνει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας χρεώσεις που υφίστανται κανονικά για κλήσεις υποστήριξης, ίσως έχει ακυρωθεί. Για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση, θα ισχύσουν οι συνήθεις υποστήριξης.Η αγγλική έκδοση αυτής της επείγουσας επιδιόρθωσης έχει τα χαρακτηριστικά αρχείου (ή νεότερα) που παρατίθενται στον παρακάτω πίνακα. Οι ημερομηνίες και οι ώρες για αυτά τα αρχεία αναφέρονται σε Συντονισμένη παγκόσμια ώρα (UTC). Όταν προβάλετε τις πληροφορίες του αρχείου, τη μετατροπή σε τοπική ώρα. Για να βρείτε τη διαφορά μεταξύ της ώρας UTC και της τοπικής ώρας, χρησιμοποιήστε τηνΖώνη ώραςστην καρτέλα στο εργαλείο "ημερομηνία και ώρα" στον πίνακα ελέγχου.
   Date         Time   Version            Size    File name
   --------------------------------------------------------------
   02-Mar-2004  18:39  1.1.4322.1007   1,294,336  System.data.dll                                             

Εναλλακτικός τρόπος αντιμετώπισης

Δημιουργία ή καταστροφή αντικείμενα που σχετίζονται με το σύνολο δεδομένων (όπως έναΤο DataViewαντικείμενο) μέσα σε ένα πρόγραμμα χειρισμού συμβάντων για έναΣύνολο δεδομένωντο αντικείμενο.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για" αυτού του άρθρου.
Η στοίβα κλήσεων για την εξαίρεση αυτή εξαρτάται από τη λειτουργικότητα της εφαρμογής σας και την ακριβή αιτία του σφάλματος. Ακολουθούν δύο παραδείγματα που έχουν παρουσιαστεί όταν παιδίΤο DataViewαντικείμενα που δημιουργούνται με τοListChangedπρόγραμμα χειρισμού συμβάντων για ένα στοιχείο ελέγχου:

Στοίβα κλήσεων παράδειγμα 1

System.Collections.ArrayList.get_Item(Int32 index)
Sstem.Data.DataTable.RecordStateChanged(Int32 record1, DataViewRowState oldState1, DataViewRowState newState1, Int32 record2, DataViewRowState oldState2, DataViewRowState newState2)
System.Data.DataTable.SetNewRecord(DataRow row, Int32 proposedRecord, DataRowAction action, Boolean isInMerge)
System.Data.DataRow.EndEdit()
System.Data.DataRow.set_Item(DataColumn column, Object value)
System.Data.DataRow.set_Item(String columnName, Object value)

Στοίβα κλήσεων παράδειγμα 2

System.Collections.ArrayList.get_Item(Int32 index)
System.Data.DataTable.ResetIndexes()
System.Data.Merger.MergeTable(DataTable src, DataTable dst)
System.Data.Merger.MergeTableData(DataTable src)
System.Data.Merger.MergeDataSet(DataSet source)
System.Data.DataSet.Merge(DataSet dataSet, Boolean preserveChanges, MissingSchemaAction missingSchemaAction)

ΣημείωσηΑυτά είναι μόνο παραδείγματα και δεν είναι η μόνη στοίβες κλήσεων που ενδέχεται να προκύψουν με αυτό το σφάλμα.

Αναφορές

Για πρόσθετες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
824684Περιγραφή της βασικής ορολογίας που χρησιμοποιείται για την περιγραφή ενημερωμένων εκδόσεων λογισμικού της Microsoft
Για πρόσθετες πληροφορίες σχετικά με μια παρόμοια εξαίρεση που προκύπτει με μια παλαιότερη έκδοση του ADO.Στο ΔΊΚΤΥΟ, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
332215ΕΠΙΔΙΌΡΘΩΣΗ: "System.ArgumentOutOfRangeException: ο δείκτης βρισκόταν εκτός της περιοχής" παρουσιάζεται με SqlClient.SqlConnection.Open()
ΣημείωσηΗ ενημέρωση κώδικα για το άρθρο της Γνωσιακής Βάσης της Microsoft 332215 περιλαμβάνεται ήδη στο του.NET Framework έκδοση 1.1.

Ιδιότητες

Αναγν. άρθρου: 836874 - Τελευταία αναθεώρηση: Τρίτη, 1 Φεβρουαρίου 2011 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft ADO.NET 1.1
Λέξεις-κλειδιά: 
kbhotfixserver kbqfe kbmt KB836874 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:836874
Αποποίηση ευθυνών για περιεχόμενο της Γνωσιακής Βάσης (KB) που έχει αποσυρθεί
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com