2012-09-06 12 views
15

Mi chiedo se sia possibile aggiungere valori a specifiche celle DataTable?Aggiunta di valori a specifiche celle DataTable

Supponiamo di avere un dataTable esistente e aggiungo una nuova colonna, come andrei ad aggiungere alle righe della nuova colonna senza sovrascrivere le righe delle colonne esistenti?

Per quanto ne so, non esiste un metodo per aggiungere celle specifiche (a meno che non mi sbagli).

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

dove a, b, c sono valori stringa. Che cosa succede se voglio solo aggiungere alla colonna d?

Qualsiasi aiuto sarebbe apprezzato.

risposta

18

Se si trattasse di una nuova riga che si voleva impostare un solo valore, si avrebbe bisogno di aggiungere l'intera riga e quindi impostare il valore individuale :

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

In caso contrario, è possibile trovare la riga esistente e impostare il valore della cella

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

'dr [3] =" Nuovo valore ";' Il ".Valore" non è necessario. – Machtyn

0

Vuoi dire che vuoi aggiungere una nuova riga e solo mettere i dati in una determinata colonna? Provare quanto segue:

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

Poiché si tratta di un data tavolo, però, ci saranno sempre i dati di qualche tipo in ogni colonna. Potrebbe essere solo DBNull.Value invece di qualsiasi tipo di dati che immagini sarebbe.

0

Penso che non puoi farlo ma almeno puoi aggiornarlo. Per modificare una riga esistente in un DataTable, è necessario individuare il DataRow che si desidera modificare e quindi assegnare i valori aggiornati alle colonne desiderate.

Esempio,

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

SOURCE HERE

5

Prova questo:

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

Per esempio: se si desidera aggiungere valore 5 (numero 5) al 1 ° riga e la colonna nome "indice" si dovrebbe fare questo

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

Credo che la riga DataTable inizi con 0

0

Se qualcuno cerca una sintassi corretta aggiornata per questo come ero, prova quanto segue:

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