Modificar datos de un DataTable en C#
En esta ocasión veamos como modificar datos de un DataTable en C# desde un dato único o buscando un dato para modificarlo mediante ciclos.
Al estar trabajando con tablas tanto creados manualmente desde código o como resultado de una consulta de base de datos es necesario manipularlo.
Como se recorre un DataTabla
Entre las actualizaciones de los datos debemos de acceder a la tabla y modificarlos utilizando ciertas reglas.
- Las filas están numeradas a partir de 0.
- Necesitamos conocer el nombre de la columna.
Podría interesarte Ordenar filas de un DataTable en C#
Modificar un dato del DataTable
Utilizando el DataTable creado en post anteriores proseguiremos a realizar las actividades de actualización.
Para este ejemplo tenemos una tabla con los datos siguientes:
Necesito actualizar el registro con número 1, por lo tanto, la instrucción será la siguiente:
tablaUno.Rows[0]["Nombre"] = "Victoriano Huerta";
- Colocamos el nombre de la tabla y que trabajaremos en las filas (rows).
- Colocamos el numero de la fila, el número es 0 de acuerdo con las reglas de numeración.
- Establecemos el nombre de la columna, el nombre es “Nombre”.
- Igualamos con el nuevo valor del campo, el nuevo valor es “Victoriano Huerta”.
La instrucción no dará como resultado la siguiente tabla:
Podría interesarte Obtener datos de un DataTable en C#
Modificar DataTable mediante un ciclo
Es posible que en algunas ocasiones no conozcamos el número de fila de un registro que necesitamos modificar, para ello utilizamos ciclos.
El ciclo foreach nos permite recorrer las filas de un DataTable uno por uno y mediante un “if” filtrar el dato requerido.
Por ejemplo:
Necesito actualizar el registro que en su columna “Numero” tenga el valor de 3, sin embargo, no conocemos el número de fila.
Para solucionar este problema podemos utilizar el código siguiente:
foreach (DataRow row in tablaUno.Rows) {
if (Convert.ToInt32(row["Numero"].ToString()) == 3)
{
tablaUno.Rows[3]["Nombre"] = "Plutarco Elias Calles";
}
}
El resultado que obtenemos es la actualización del registro que en “Numero” tenía el valor de 3.
Si hubiera existido más de un registro con ese número, todos esos registros se habrían actualizado.
Podría interesarte Convertir un IEnumerable a DataTable en C#
Pequeña observación, como sabes que estas en la fila 2 (tablaUno.Rows[2]), y la imagen que muestras no es correcta porque muestras que modificaste el numero 3.
Es correcta tu observación, ya esta actualizado para que no existan confuciones, gracias.