2012-09-06 157 views
15

Me pregunto si es posible agregar valores a celdas de DataTable específicas?Agregando valores a celdas de DataTable específicas

Supongamos que tengo una dataTable existente y agrego una nueva columna, ¿cómo voy a agregar a las filas de la nueva columna sin sobreescribir las filas de las columnas existentes?

Hasta donde yo sé, no hay un método para agregar a celdas específicas (a menos que esté equivocado).

dt.Rows.Add(a, b, c, d) 

donde a, b, c y d son valores de cadena. ¿Y qué si solo quiero agregar a la columna d?

Cualquier ayuda sería apreciada.

Respuesta

18

Si se tratara de una forma completamente nueva fila que quería sólo se establece un valor, que tendría que añadir toda la fila y luego ajustar el valor individual :

DataRow dr = dt.NewRow(); 
dr[3].Value = "Some Value"; 
dt.Rows.Add(dr); 

De lo contrario, se puede encontrar la fila existente y establecer el valor de la celda

DataRow dr = dt.Rows[theRowNumber]; 
dr[3] = "New Value"; 
+9

'dr [3] =" Nuevo valor ";' El ".Value" no es necesario. – Machtyn

0

¿Quiere decir que quiere agregar una nueva fila y solo colocar datos en una determinada columna? Pruebe lo siguiente:

var row = dataTable.NewRow(); 
row[myColumn].Value = "my new value"; 
dataTable.Add(row); 

Como se trata de una tabla de datos , sin embargo, siempre habrá datos de algún tipo en cada columna. Puede ser DBNull.Value en lugar del tipo de datos que imagines.

0

Creo que no puedes hacer eso pero al menos puedes actualizarlo. Para editar una fila existente en una DataTable, necesita ubicar la DataRow que desea editar y luego asignar los valores actualizados a las columnas deseadas.

ejemplo,

DataSet1.Tables(0).Rows(4).Item(0) = "Updated Company Name" 
DataSet1.Tables(0).Rows(4).Item(1) = "Seattle" 

SOURCE HERE

5

Prueba esto:

dt.Rows[RowNumber]["ColumnName"] = "Your value" 

Por ejemplo: si desea agregar valor 5 (número 5) de primera fila y el nombre de la columna "índice" podría hacer esto

dt.Rows[0]["index"] = 5; 

Creo que la fila de DataTable comienza con 0

0

Si alguien está buscando una sintaxis correcta actualizada para esto como yo, intente lo siguiente:

Example: 
dg.Rows[0].Cells[6].Value = "test"; 
Cuestiones relacionadas