Düzeltme: System.ArgumentOutOfRangeException ADO.NET ile zaman zaman oluşuyor

Makale çevirileri Makale çevirileri
Makale numarası: 836874 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Belirtiler

ADO.NET uygulamayı zaman zaman aşağıdaki özel durum hata iletisi alabilirsiniz:
System.ArgumentOutOfRangeException: Dizin aralık dışında dışındaydı. Negatif olmamalı ve koleksiyonun boyutundan küçük olmalıdır. Parametre adı: dizin

Neden

Oluşturmak ya da (örneğin, bir DataView nesnesi), DataSet ile ilgili nesneleri yok bir DataSet nesnesi için bir olay işleyicisi veya bir DataSet nesnesiyle ilişkili bir nesne bu hata iletisini alırsınız. Örneğin, bu hata, alt DataView nesneler kılavuz için ListChanged olay işleyicisindeki oluşturma bir kılavuz denetimi içeren bir uygulamada yeniden. Bu, iç durumu burada, statik kalması gereken temel DataSet nesnesinin bir işlem sırasında değiştirme sağlar.

Çözüm

Desteklenen bir düzeltme Microsoft'tan edinilebilir, ancak yalnızca bu makalede anlatılan sorunu düzeltmesi amaçlanmıştır. Düzeltmeyi yalnızca bu sorunla karşılaşan sistemlere uygulayın. Bu düzeltmeye ek sınama uygulanabilir. Bu nedenle, sorundan ciddi olarak etkilenmiyorsanız, bu düzeltmeyi içeren bir sonraki hizmet paketini beklemeniz önerilir.

Bu sorunu hemen çözmek için, düzeltmeyi edinmek üzere Microsoft Ürün Destek Hizmetleri'ne başvurun. Microsoft Ürün Destek Hizmetleri'nin telefon numaralarının tam listesi ve destek ücretleriyle ilgili bilgi için, aşağıdaki Microsoft Web sitesini ziyaret edin:
http://support.microsoft.com/contactus/?ws=support
Not Özel durumlarda, Microsoft Destek Uzmanı özel bir güncelleştirmenin sorununuzu çözümleyeceğini belirlerse, destek aramaları için normalde uygulanan ücretler iptal edilebilir. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.Bu düzeltmenin ingilizce sürümü dosya öznitelikleri (veya daha yenisi) aşağıdaki tabloda listelenir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'e (UTC) göre listelenir. Dosya bilgilerini görüntülediğinizde yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için <a0></a0>, Denetim Masası'ndaki Tarih ve Saat aracında saat dilimi sekmesini kullanın.
   Date         Time   Version            Size    File name
   --------------------------------------------------------------
   02-Mar-2004  18:39  1.1.4322.1007   1,294,336  System.data.dll                                             

Pratik Çözüm

Değil oluşturmak veya DataSet ile ilgili nesneleri (örneğin, bir DataView nesnesi) içinde bir DataSet nesnesi için bir olay işleyicisi yok etmez.

Durum

Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.
Bu özel durum için çağrı yığını uygulama işlevselliğini ve hatanın nedenini tam bağlıdır. Alt DataView nesnelerin denetimi için <a1>ListChanged</a1> olay işleyicisindeki oluşturulduğunda oluşan iki örnek aşağıda verilmiştir:

Örnek çağrı yığı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)

Örnek çağrı yığı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)

Not Bu, yalnızca örnektir ve bu hata oluşan tek bir çağrı yığınları değildir.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması
Bir önceki bir sürümü ADO.NET ile oluşan benzer bir özel durum hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
332215Düzeltme: "System.ArgumentOutOfRangeException: Dizin aralık dışında dışındaydı" ile SqlClient.SqlConnection.Open() hatası oluşuyor
Not Microsoft Bilgi Bankası makalesi 332215 ilgili düzeltme, .NET Framework sürüm 1.1 zaten eklenmiştir.

Özellikler

Makale numarası: 836874 - Last Review: 1 Haziran 2006 Perşembe - Gözden geçirme: 2.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ADO.NET 1.1
Anahtar Kelimeler: 
kbmt kbhotfixserver kbqfe KB836874 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:836874
Kullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.

Geri Bildirim Ver

 

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