ИСПРАВЛЕНИЕ: Метод System.Data.Index.CompareRecords генерирует исключение System.NullReferenceException при попытке использовать код для изменения записей в таблице данных в.NET Framework 2.0-приложение

Переводы статьи Переводы статьи
Код статьи: 940932 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Проблема

Рассмотрим следующую ситуацию. В корпорации Майкрософт.NET Framework 2.0-приложение, привязку приложений к таблице данных. Затем удалите столбец из таблицы данных. Затем попытайтесь изменить запись в этой таблице данных с помощью кода. В этом случае System.Data.index.CompareRecords Создает метод System.NullReferenceException исключение.

Данная проблема возникает при выполнении одного из следующих условий:
  • Удалить первичный ключ из таблицы данных.
  • Удаление коллекции ограничение из таблицы данных.
  • В AllowDBNull свойство столбца имеет значение «false» и удалить этот столбец.
  • В Уникальный для столбца задано "значение true", а также удалить этот столбец.

Причина

Данная проблема возникает, поскольку внутренние индексы ссылаться на столбец, который был удален.

Решение

Сведения об исправлении

Исправление выпущенного корпорацией Майкрософт. Тем не менее он предназначен для устранения проблемы, описанной в этой статье. Предлагаемое исправление должно применяться исключительно в системах, в которых обнаружена эта специфическая неполадка. Это исправление находится на стадии дополнительного тестирования. Таким образом Если вы не представляет особой эта проблема, рекомендуется дождаться следующего.NET Framework 2.0 пакета обновления, содержащего это исправление.

Чтобы решить проблему немедленно, обратитесь в службу технической поддержки Майкрософт для получения исправления. Полный список телефонов служб поддержки клиентов корпорации Майкрософт и сведения о стоимости поддержки посетите следующий веб-узел корпорации Майкрософт:
http://support.Microsoft.com/contactus/?ws=Support
Примечание В особых случаях, предусмотренная для звонков в службу поддержки может быть отменена, если специалистом службы поддержки Майкрософт определяет, что решения проблемы является специально выпущенное. Затраты на обычные службы поддержки будут применяться дополнительные вопросы и проблемы, которые не соответствуют требованиям особым обновлением.

Необходимые условия

Перед установкой данного исправления необходимо установить исправление 916002.Для получения дополнительных сведений щелкните следующий номер статьи базы знаний Майкрософт:
916002ИСПРАВЛЕНИЕ: Ошибка сообщение при попытке использовать класс SqlClient в ADO.NET 2.0-приложение для подключения к экземпляру SQL Server 2005: «новый запрос не может запустить, так как он должен иметь допустимый дескриптор транзакции»

Необходимость перезагрузки

После установки этого исправления необходимо перезагрузить компьютер.

Сведения о замене исправлений

Это исправление не заменяет других исправлений.

Сведения о файлах

Английская версия исправления содержит атрибуты файла (или более поздними), приведенные в следующей таблице. Дата и время для файлов указаны в формате общего скоординированного времени (UTC). При просмотре сведений о файле, он преобразуется в локальное время. Чтобы узнать разницу между временем по Гринвичу и местным временем, следует использовать Часовой пояс на вкладке Дата и время элемент панели управления.
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформа
Файла Mscordacwks.dll2.0.50727.916802,30404 Августа 2007 г.03: 28x 86
Mscorjit.dll2.0.50727.916326,65604 Августа 2007 г.03: 28x 86
Библиотека mscorlib.dll2.0.50727.9164,308,99204 Августа 2007 г.03: 28x 86
Mscorpe.dll2.0.50727.916102,91204 Августа 2007 г.03: 28x 86
Mscorwks.dll2.0.50727.9165,634,56004 Августа 2007 г.03: 28x 86
Normalization.dll2.0.50727.91615,36004 Августа 2007 г.03: 28x 86
Peverify.dll2.0.50727.916136,19204 Августа 2007 г.03: 28x 86
SOS.dll2.0.50727.916382,46404 Августа 2007 г.03: 28x 86
System.Data.dll2.0.50727.9162,903,04004 Августа 2007 г.03: 28x 86

Временное решение

Чтобы обойти эту проблему, создайте новую таблицу данных.

Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Microsoft, перечисленных в разделе «Относится к».

Дополнительная информация

После установки этого исправления невозможно удалить столбец при DataView.RowFilter свойство или DataView.Sort свойство ссылается на столбец.

Для получения дополнительных сведений о System.NullReferenceException исключение, посетите следующий веб-узел корпорации Майкрософт:
http://msdn2.Microsoft.com/en-us/library/System.NullReferenceException (vs.80) .aspx
Для получения дополнительных сведений о терминологии, обновление программного обеспечения щелкните следующий номер статьи базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт

Стек вызовов

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)

Свойства

Код статьи: 940932 - Последний отзыв: 16 мая 2011 г. - Revision: 1.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft .NET Framework 2.0
Ключевые слова: 
kbexpertiseadvanced kbfix kbqfe kbmt KB940932 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:940932

Отправить отзыв

 

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