REVISIÓN: El método System.Data.Index.CompareRecords genera una excepción System.NullReferenceException cuando intenta utilizar el código para modificar un registro en una tabla de datos en una.NET Framework 2.0-en

Seleccione idioma Seleccione idioma
Id. de artículo: 940932 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Considere el siguiente escenario. En Microsoft.NET Framework 2.0-aplicación, enlaza la aplicación a una tabla de datos. A continuación, quitar una columna de la tabla de datos. A continuación, intenta utilizar el código para modificar un registro en esta tabla de datos. En este escenario, el System.Data.Index.CompareRecords método genera un System.NullReferenceException excepción.

Este problema se produce si se cumple una de las condiciones siguientes:
  • Quitar una clave principal de la tabla de datos.
  • Quitar una colección de restricción de la tabla de datos.
  • El AllowDBNull para una columna está establecida en "false", y quitar esta columna.
  • El Único para una columna está establecida en "true" y puede eliminar esta columna.

Causa

Este problema se produce porque los índices internos hacen referencia a la columna que se ha quitado.

Solución

Información de la revisión

Ahora hay un hotfix compatible de Microsoft. Sin embargo, se pretende corregir el problema descrito en este artículo. Aplica sólo a los sistemas que experimenten este problema específico. Esta revisión puede recibir comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere al próximo.NET Framework 2.0 service pack que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con los servicios de soporte técnico de Microsoft para obtener la revisión. Para obtener una lista completa de los números de teléfono de servicios de soporte técnico de Microsoft e información acerca de los costos de soporte técnico, visite el siguiente sitio Web de Microsoft:
http://support.Microsoft.com/contactus/?ws=support
Nota En casos especiales, los costos derivados normalmente llamadas de soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos de soporte técnico usuales se aplicarán a las cuestiones y problemas que no reúnan los requisitos para la actualización en cuestión.

Requisitos previos

Debe instalar el hotfix 916002 antes de instalar este hotfix.Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
916002REVISIÓN: Aparece un mensaje de Error cuando intenta utilizar la clase SqlClient en un DataSet de ADO.NET 2.0-aplicación para conectarse a una instancia de SQL Server 2005: "nueva solicitud no se permite iniciar porque debería venir con un descriptor de transacción válido"

Requisito de reinicio

Debe reiniciar el equipo después de aplicar este hotfix.

Información de reemplazo de hotfix

Este hotfix no sustituye a otras revisiones.

Información de archivo

La versión inglesa de esta revisión tiene los atributos de archivo (o atributos de archivo más reciente) mostrados en la tabla siguiente. Las fechas y horas de estos archivos se muestran en hora Universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para ver la diferencia entre la hora UTC y la hora local, utilice el Zona horaria ficha en la Fecha y hora elemento de Panel de Control.
Contraer esta tablaAmpliar esta tabla
Nombre de archivoVersión del archivoTamaño de archivoFechaTiempoPlataforma
Mscordacwks.dll2.0.50727.916802,30404 De agosto de 200703: 28x 86
Mscorjit.dll2.0.50727.916326,65604 De agosto de 200703: 28x 86
Mscorlib.dll2.0.50727.9164,308,99204 De agosto de 200703: 28x 86
Mscorpe.dll2.0.50727.916102,91204 De agosto de 200703: 28x 86
Mscorwks.dll2.0.50727.9165,634,56004 De agosto de 200703: 28x 86
Normalization.dll2.0.50727.91615,36004 De agosto de 200703: 28x 86
Peverify.dll2.0.50727.916136,19204 De agosto de 200703: 28x 86
SOS.dll2.0.50727.916382,46404 De agosto de 200703: 28x 86
System.Data.dll2.0.50727.9162,903,04004 De agosto de 200703: 28x 86

Solución

Para evitar este problema, cree una nueva tabla de datos.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Se refiere a:".

Más información

Después de aplicar este hotfix, no se puede quitar una columna cuando un Propiedad DataView.RowFilter propiedad o un DataView.Sort propiedad hace referencia a esa columna.

Para obtener más información acerca de la System.NullReferenceException excepción, visite el siguiente sitio Web de Microsoft:
http://msdn2.Microsoft.com/en-us/library/System.NullReferenceException (vs.80) .aspx
Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 Descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

Información de la pila de llamadas

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)

Propiedades

Id. de artículo: 940932 - Última revisión: sábado, 28 de mayo de 2011 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft .NET Framework 2.0
Palabras clave: 
kbexpertiseadvanced kbfix kbqfe kbmt KB940932 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 940932

Enviar comentarios

 

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