2011-01-19 18 views
31

Mam DataTable wypełnione danymi pracowników, jak ..wstawić nowy wiersz w 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 

Chcę zmodyfikować tak, że wynik byłby sth jak ..

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 

być zakończony, muszę wstawić cały wiersz na końcu każdego rekordu personelu.

Moje pytanie brzmi: jak wstawić wiersz do datatable? TKZ ..

+0

@zerkms: To nie jest szeroka w ogóle. Po prostu pyta, jak manipulować DataTable przez dodanie DataRow. –

Odpowiedz

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

Będę zapętlać pętli datatable. więc rows.count będzie się zwiększać za każdym razem, gdy wstawię nowy wiersz lub ... zwiększy się tylko wtedy, gdy napisz AcceptChanges(); – william

+0

@william: 'Rows.Count' zwiększy się, gdy wstawisz wiersz. 'AcceptChanges' resetuje' RowState' na wszystkich nowych wierszach, tak aby nie wskazywały, że są nowe. –

+0

Dzięki. Ale elipsa zamiast kodu nie pomaga. Ale myślę, że wiem, dokąd zmierzasz, i powinienem być w stanie to wypracować. Dzięki jeszcze raz. –

65

@William Można użyć metody newRow z DataTable uzyskać pusty datarow i ze schematem opisanym w DataTable. Można wypełnić ten datarow, a następnie dodać wiersz do datatable za pomocą .Rows.Add(DataRow) OR .Rows.InsertAt(DataRow, Position). Poniżej znajduje się kodeks, który można modyfikować zgodnie z wygodą użytkownika.

//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 
      }); 
Powiązane problemy