2011-01-19 18 views
31

Ho un datatable pieno di dati personale come ..Inserire una nuova riga nella DataTable

Staff 1 - Day 1 - Total 
Staff 1 - Day 2 - Total 
Staff 1 - Day 3 - Total 
Staff 2 - Day 1 - Total 
Staff 2 - Day 2 - Total 
Staff 2 - Day 3 - Total 
Staff 2 - Day 4 - Total 

voglio modificare in modo che il risultato sarebbe qc come ..

Staff 1 - Day 1 - Total 
Staff 1 - Day 2 - Total 
Staff 1 - Day 3 - Total 
Total -  - Total Value 
Staff 2 - Day 1 - Total 
Staff 2 - Day 2 - Total 
Staff 2 - Day 3 - Total 
Staff 2 - Day 4 - Total 
Total -  - Total Value 

di essere concluso, ho bisogno di inserire la riga totale alla fine di ogni record del personale.

Quindi, la mia domanda è come inserire una riga in un datatable? Tkz ..

+0

@zerkms: Non è ampia a tutti. Sta solo chiedendo come manipolare un DataTable aggiungendo un DataRow. –

risposta

47
// get the data table 
DataTable dt = ...; 

// generate the data you want to insert 
DataRow toInsert = dt.NewRow(); 

// insert in the desired place 
dt.Rows.InsertAt(toInsert, index); 
+0

Farò il looping del datatable. quindi il rows.count aumenterà ogni volta che inserirò una nuova riga o .. aumenterà solo se scrivo AcceptChanges(); – william

+0

@william: 'Rows.Count' aumenterà non appena si inserisce la riga. 'AcceptChanges' reimposterà' RowState' su tutte le nuove righe in modo da non indicare che sono nuove. –

+0

Grazie. Ma un'ellissi al posto del codice non aiuta. Ma penso di sapere dove stavi andando e dovrei riuscire a risolverlo. Grazie ancora. –

65

@William È possibile utilizzare il metodo NewRow della DataTable per ottenere un datarow vuota e con lo schema come quello della DataTable. È possibile popolare questo datarow e quindi aggiungere la riga al datatable utilizzando .Rows.Add(DataRow) OR .Rows.InsertAt(DataRow, Position). Il seguente è un codice stub che è possibile modificare secondo la vostra convenienza.

//Creating dummy datatable for testing 
DataTable dt = new DataTable(); 
DataColumn dc = new DataColumn("col1", typeof(String)); 
dt.Columns.Add(dc); 

dc = new DataColumn("col2", typeof(String)); 
dt.Columns.Add(dc); 

dc = new DataColumn("col3", typeof(String)); 
dt.Columns.Add(dc); 

dc = new DataColumn("col4", typeof(String)); 
dt.Columns.Add(dc); 

DataRow dr = dt.NewRow(); 

dr[0] = "coldata1"; 
dr[1] = "coldata2"; 
dr[2] = "coldata3"; 
dr[3] = "coldata4"; 

dt.Rows.Add(dr);//this will add the row at the end of the datatable 
//OR 
int yourPosition = 0; 
dt.Rows.InsertAt(dr, yourPosition); 
8
// create table 
var dt = new System.Data.DataTable("tableName"); 

// create fields 
dt.Columns.Add("field1", typeof(int)); 
dt.Columns.Add("field2", typeof(string)); 
dt.Columns.Add("field3", typeof(DateTime)); 

// insert row values 
dt.Rows.Add(new Object[]{ 
       123456, 
       "test", 
       DateTime.Now 
      }); 
Problemi correlati