Oprava: System.ArgumentOutOfRangeException dochází nepravidelně s ADO.NET

Překlady článku Překlady článku
ID článku: 836874 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Příznaky

V aplikaci ADO.NET může nepravidelně zobrazit následující chybová zpráva Výjimka:
System.ArgumentOutOfRangeException: Index byl mimo rozsah. Musí být nezáporný a musí být menší než velikost kolekce. Název parametru: index

Příčina

Tato chybová zpráva Pokud vytvoření nebo zničení DataSet související objekty (například objekt DataView) v obslužnou rutinu události pro objekt DataSet nebo objekt, který je přidružený objekt DataSet. Tato chyba byla reprodukována například v aplikaci, která obsahovala mřížky ovládací prvek, který byl v obsluze události ListChanged mřížky vytváření DataView podřízené objekty. To umožňuje vnitřní stav podkladového objektu DataSet změnit během operace kde jej by měly zůstat statické.

Řešení

Společnost Microsoft má nyní k dispozici podporovanou opravu hotfix, která je určena pouze k odstranění problému popsaného v tomto článku. Použijte ji pouze v systémech, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Pokud vás tedy uvedené potíže příliš neobtěžují, doporučujeme, abyste počkali na další aktualizaci Service Pack, která bude novou opravu hotfix obsahovat.

Potřebujete-li odstranit tento problém okamžitě, obraťte se na služby podpory společnosti Microsoft, kde můžete tuto opravu hotfix získat. Úplný seznam telefonních čísel služeb technické podpory společnosti Microsoft a informace o cenách technické podpory naleznete na tomto webu společnosti Microsoft:
http://support.microsoft.com/contactus/?ws=support
Poznámka: Poplatky, které je třeba obvykle zaplatit za telefonní hovory, mohou být stornovány, jestliže pracovník technické podpory společnosti Microsoft zjistí, že oznámený problém lze vyřešit konkrétní aktualizací. Další dotazy a žádosti o odbornou pomoc, které se netýkají této zvláštní opravy, podléhají běžným sazbám za poskytnutí odborné pomoci.Anglická verze této opravy hotfix má následující nebo vyšší atributy souborů. Data a časy jednotlivých souborů jsou uvedeny ve formátu UTC (Coordinated Universal Time). Pokud zobrazíte informace o souboru, bude převedena na místní čas. Rozdíl mezi místním ČASEM a najít, použijte kartu časové pásmo v ovládacím panelu Datum a čas.
   Date         Time   Version            Size    File name
   --------------------------------------------------------------
   02-Mar-2004  18:39  1.1.4322.1007   1,294,336  System.data.dll                                             

Jak potíže obejít

Není vytvoření nebo zničení DataSet související objekty (například objekt DataView) uvnitř obslužnou rutinu události pro objekt DataSet.

Prohlášení

Společnost Microsoft potvrzuje, že se jedná o problém v produktech společnosti, které jsou uvedeny v části "Platí pro" v tomto článku.
Zásobník volání tato výjimka závisí na funkčnost aplikace a přesnou příčinu chyby. Následují dva příklady, které nastaly DataView podřízené objekty, které jsou vytvořeny v ListChanged obslužnou rutinu události pro ovládací prvek:

Příklad zásobníku volání 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)

Příklad zásobníku volání 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)

Poznámka: Tyto jsou pouze příklady a nejsou pouze zásobníky volání, které mohou nastat s touto chybou.

Odkazy

Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
824684Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft
Další informace o podobné výjimka, který nastane dřívější verzi ADO.NET klepnutím na následující číslo článku databáze Microsoft Knowledge Base:
332215Oprava: "System.ArgumentOutOfRangeException: Index byl mimo rozsah" SqlClient.SqlConnection.Open() dojde k chybě
Poznámka: Oprava článku znalostní báze Microsoft Knowledge Base 332215 je již součástí rozhraní .NET Framework verze 1.1.

Vlastnosti

ID článku: 836874 - Poslední aktualizace: 1. června 2006 - Revize: 2.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft ADO.NET 1.1
Klíčová slova: 
kbmt kbhotfixserver kbqfe KB836874 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:836874
Právní omezení pro obsah znalostní báze týkající se produktů, jejichž podpora byla ukončena
Tento článek byl napsán o produktech, pro které společnost Microsoft již neposkytuje nadále podporu. Článek je tedy nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.

Dejte nám zpětnou vazbu

 

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