2011-01-19 164 views
31

我充滿了類似的員工數據的DataTable ..插入新行的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 

我想修改,這樣的結果將是某事像..

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 

是總結,我需要在每個員工記錄末尾插入總行。

所以,我的問題是如何在數據表中插入一行? TKZ ..

+0

@zerkms:這不是廣泛的。他只是問如何通過添加DataRow來操作DataTable。 – 2011-01-19 04:10:19

回答

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

我將循環循環數據表。所以rows.count會增加每次我插入一個新的行或..它會增加,只有當我寫AcceptChanges(); – william 2011-01-19 04:12:42

65

@William您可以使用DataTable的NEWROW方法來得到一個空白數據行,並與該模式爲DataTable的。您可以填充此數據行,然後使用.Rows.Add(DataRow).Rows.InsertAt(DataRow, Position)將該行添加到數據表中。以下是可根據您的方便修改的存根代碼。

//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 
      });