Saltar al contenido

ReadOnlyException DataTable DataRow “La columna X es de solo lectura”.

Nuestros mejores programadores agotaron sus provisiones de café, por su búsqueda noche y día por la solución, hasta que Patricia halló el arreglo en GitLab así que ahora la comparte con nosotros.

Solución:

usando DataAdapter.Fill no carga el esquema de la base de datos, que incluye si una columna es primaria key o no, y si una columna es de solo lectura o no. Para cargar el esquema de la base de datos, utilice DataAdapter.FillSchemapero entonces esa no es tu pregunta.

usando DataReader para llenar una tabla carga el esquema. Entonces el index columna es de sólo lectura (probablemente porque es el principal key) y esa información se carga en el DataTable. Evitando así que modifique los datos de la tabla.

Creo que @k3b lo hizo bien; configurando ReadOnly = falsedebería poder escribir en la tabla de datos.

foreach (System.Data.DataColumn col in tab.Columns) col.ReadOnly = false; 

Seguí recibiendo la misma excepción al intentar diferentes enfoques. Lo que finalmente funcionó para mí fue establecer la propiedad ReadOnly de la columna en false y cambiar el valor de la Expresión columna en lugar de fila[index] = “nuevo valor”;

Recuerda que tienes concesión de valorar este escrito si diste con el resultado.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *