Poprawka: Metoda System.Data.Index.CompareRecords generuje wyjątek System.NullReferenceException podczas próby użycia kodu do modyfikowania rekordu w tabeli danych.NET Framework 2.0 aplikacji

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 940932 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Symptomy

Rozważmy następujący scenariusz. W programie Microsoft.NET Framework 2.0 aplikacji, powiązania aplikacji do tabeli danych. Następnie należy usunąć kolumnę z tabeli danych. Następnie spróbuj użyć kodu do modyfikowania rekordu w tabeli danych. W tym scenariuszu System.Data.index.CompareRecords Metoda generuje System.NullReferenceException wyjątek.

Ten problem występuje, jeśli spełniony jest jeden z następujących warunków:
  • Usunięcia klucza podstawowego tabeli danych.
  • Kolekcja ograniczenie Usuń z tabeli danych.
  • W AllowDBNull Właściwości kolumny jest wartość "false" i usunąć tej kolumny.
  • W Unikatowe Właściwość kolumny jest ustawiona na "true", a następnie usunąć tej kolumny.

Przyczyna

Ten problem występuje, ponieważ indeksy wewnętrznego odwołanie kolumny, która została usunięta.

Rozwiązanie

Informacje o poprawce

Obsługiwana poprawka jest teraz udostępniana przez firmę Microsoft. Jednak jest ona przeznaczona do rozwiązania problemu opisanego w tym artykule. Ją stosować tylko w systemach, w których występuje ten problem. Ta poprawka może być wciąż w fazie testowania. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następny.NET Framework 2.0 z dodatkiem Service pack zawierający tę poprawkę.

Aby natychmiast rozwiązać ten problem, skontaktuj się z pomocą techniczną firmy Microsoft w celu uzyskania poprawki. Pełną listę numerów telefonów technicznej firmy oraz informacje o kosztach odwiedź następujące witryny firmy Microsoft:
http://support.microsoft.com/contactus/?ws=support
Uwaga W szczególnych przypadkach opłaty telefonujący do pomocy technicznej może być anulowane, jeżeli technicznej firmy Microsoft ustali, że określonej aktualizacji problem można rozwiązać. Koszty obsługi zwykłych zastosuje dodatkowych pytań i problemów, które nie kwalifikują się do określonej aktualizacji.

Warunki wstępne

Przed zainstalowaniem tej poprawki należy zainstalować poprawkę 916002.Aby uzyskać więcej informacji kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
916002Poprawka: Komunikat O błędzie podczas próby użycia klasy SqlClient w ADO.NET aplikacji opartej na 2.0, aby połączyć się z wystąpieniem programu SQL Server 2005: "nowe żądanie jest niedozwolona, ponieważ powinna pochodzić z transakcji nieprawidłowy deskryptor"

Wymaganie dotyczące ponownego uruchomienia

Po zastosowaniu tej poprawki należy ponownie uruchomić komputer.

Informacje o zastępowaniu poprawek

Ta poprawka nie zastępuje żadnych innych poprawek.

Informacje o pliku

Wersja anglojęzyczna tej poprawki ma atrybuty pliku (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom są wyświetlane w formacie uniwersalnego czasu koordynowanego (UTC). Podczas wyświetlania informacji o pliku jest konwertowany na czas lokalny. Aby określić różnicę między czasem UTC i czasem lokalnym, należy użyć Strefa czasowa Karta w Data i godzina element w Panelu sterowania.
Zwiń tę tabelęRozwiń tę tabelę
Nazwa plikuWersja plikuRozmiar plikuDataCzasPlatforma
Pliku Mscordacwks.dll2.0.50727.916802,30404-Sie-200703: 28x 86
Mscorjit.dll2.0.50727.916326,65604-Sie-200703: 28x 86
Mscorlib.dll2.0.50727.9164,308,99204-Sie-200703: 28x 86
Mscorpe.dll2.0.50727.916102,91204-Sie-200703: 28x 86
Mscorwks.dll2.0.50727.9165,634,56004-Sie-200703: 28x 86
Normalization.dll2.0.50727.91615,36004-Sie-200703: 28x 86
Peverify.dll2.0.50727.916136,19204-Sie-200703: 28x 86
Sos.dll2.0.50727.916382,46404-Sie-200703: 28x 86
System.Data.dll2.0.50727.9162,903,04004-Sie-200703: 28x 86

Obejście problemu

Aby obejść ten problem, należy utworzyć nową tabelę danych.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "Informacje zawarte w tym artykule dotyczą".

Więcej informacji

Po zastosowaniu tej poprawki nie można usunąć kolumny po DataView.RowFilter Właściwość lub DataView.Sort Właściwość odwołuje się do tej kolumny.

Aby uzyskać więcej informacji System.NullReferenceException wyjątek, odwiedź następujące witryny firmy Microsoft:
http://msdn2.microsoft.com/en-us/library/system.NullReferenceException (vs.80) .aspx
Aby uzyskać więcej informacji dotyczących terminologii aktualizacji oprogramowania kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
824684 Opis standardowej terminologii używanej do opisywania aktualizacji oprogramowania firmy Microsoft

Informacje stosu wywołań

07d0e4b8 09195ccd System.Data.Index.CompareRecords(Int32, Int32)
07d0e4d8 09195c7a System.Data.Index+IndexTree.CompareNode(Int32, Int32)
07d0e4e4 0ff93c0e System.Data.RBTree`1[[System.Int32, mscorlib]].SearchSubTree(Int32, Int32)
07d0e4fc 0ff940e8 System.Data.RBTree`1[[System.Int32, mscorlib]].GetNodeByKey(Int32)
07d0e514 0ff93ee9 System.Data.Index.RecordStateChanged(Int32, System.Data.DataViewRowState, System.Data.DataViewRowState, Int32, System.Data.DataViewRowState, System.Data.DataViewRowState)
07d0e548 09193e97 System.Data.DataTable.RecordStateChanged(Int32, System.Data.DataViewRowState, System.Data.DataViewRowState, Int32, System.Data.DataViewRowState, System.Data.DataViewRowState)
07d0e598 09191fb7 System.Data.DataTable.SetNewRecordWorker(System.Data.DataRow, Int32, System.Data.DataRowAction, Boolean, Int32, Boolean, System.Exception ByRef)
07d0e648 0ff93e29 System.Data.DataTable.SetNewRecord(System.Data.DataRow, Int32, System.Data.DataRowAction, Boolean, Boolean)
07d0e664 09191485 System.Data.DataRow.EndEdit()
07d0e690 0955c905 System.Data.DataRow.set_Item(System.Data.DataColumn, System.Object)
07d0e6cc 0ff9e55a System.Data.DataRow.set_Item(Int32, System.Object)

Właściwości

Numer ID artykułu: 940932 - Ostatnia weryfikacja: 16 maja 2011 - Weryfikacja: 1.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft .NET Framework 2.0
Słowa kluczowe: 
kbexpertiseadvanced kbfix kbqfe kbmt KB940932 KbMtpl
Przetłumaczone maszynowo
WAŻNE: Ten artykuł nie został przetłumaczony przez człowieka, tylko przez oprogramowanie do tłumaczenia maszynowego firmy Microsoft. Firma Microsoft oferuje zarówno artykuły tłumaczone przez ludzi, jak i artykuły tłumaczone maszynowo, dzięki czemu każdy użytkownik może uzyskać dostęp do całej zawartości bazy wiedzy Knowledge Base we własnym języku. Prosimy jednak pamiętać, że artykuły przetłumaczone maszynowo nie zawsze są doskonałe. Mogą zawierać błędy słownictwa, składni i gramatyki, przypominające błędy robione przez osoby, dla których język użytkownika nie jest językiem ojczystym. Firma Microsoft nie odpowiada za wszelkie nieścisłości, błędy lub szkody spowodowane nieprawidłowym tłumaczeniem zawartości oraz za wykorzystanie tej zawartości przez klientów. Oprogramowanie do tłumaczenia maszynowego jest często aktualizowane przez firmę Microsoft.
Anglojęzyczna wersja tego artykułu to:940932

Przekaż opinię

 

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