Tengo un DataTable, el cual tiene una columna llamada "Campo1" con datos tipo texto. Quiero que todos los datos que coincidan con un valor sean cambiados por la cadena "Datos por Defecto".
En lugar de usar un bucle, se puede hacer con Linq:
DataTable
d = MetodoQueDevuelveUnDataTable();
d.AsEnumerable().ToList<DataRow>().ForEach
( r =>
{
if(String.Compare(r["Campo1"].ToString(), "valor que quiero cambiar") == 0)
r["Campo1"]
= "Datos Por Defecto";
}
);
Lo que hace el ForEach es recorrer todas las filas y buscar aquellas donde se cumple la condición y realizar las acciones que deseemos:
DataTable
d = MetodoQueDevuelveUnDataTable();
d.AsEnumerable().ToList<DataRow>().ForEach
( r =>
{
if(String.Compare(r["Campo1"].ToString(), "valor que quiero cambiar") == 0)
{
r["Campo1"]
= "Datos Por Defecto";
r["Campo2"]
= Otro Valor;
}
}
);
Si se desea modificar un valor de uno o más campos determinados en todas las filas, sólo se quita la condición:
DataTable
d = MetodoQueDevuelveUnDataTable();
d.AsEnumerable().ToList<DataRow>().ForEach
( r =>
{
r["Campo1"]
= "Datos Por Defecto";
r["Campo2"]
= Otro Valor;
}
);
2 comentarios:
Muy bueno, gracias.
Hola. Y si quiero reemplazar por ejemplo todos los valores "" de todos las columnas de todas las filas por el valor null ?
Dese ya muchas gracias. saludos.
Publicar un comentario