2011-01-19 42 views
31

Tôi có một DataTable chứa đầy dữ liệu nhân viên như ..Chèn một hàng mới vào 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 

Tôi muốn thay đổi sao cho kết quả sẽ là sth như ..

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 

được kết luận, tôi cần phải chèn tổng hàng vào cuối mỗi bản ghi nhân viên.

Vì vậy, câu hỏi của tôi là làm thế nào để chèn một hàng vào một datatable? Tkz ..

+0

@zerkms: Đó không phải là rộng ở tất cả. Anh ta chỉ hỏi làm thế nào để thao tác một DataTable bằng cách thêm một DataRow. –

Trả lời

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

Tôi sẽ looping looping datatable. do đó, rows.count sẽ tăng lên mỗi khi tôi chèn một hàng mới hoặc .. nó sẽ tăng chỉ khi tôi viết AcceptChanges(); – william

+0

@william: 'Rows.Count' sẽ tăng ngay sau khi bạn chèn hàng. 'AcceptChanges' sẽ đặt lại' RowState' trên tất cả các hàng mới để chúng không chỉ ra rằng chúng mới. –

+0

Cảm ơn. Nhưng, một hình elip thay cho mã không giúp được gì. Nhưng tôi nghĩ tôi biết bạn đang đi đâu, và tôi có thể làm việc đó. Cảm ơn một lần nữa. –

65

@William Bạn có thể sử dụng phương pháp NewRow của dữ liệu để có được dữ liệu trống và với lược đồ là dữ liệu của dữ liệu. Bạn có thể điền dữ liệu này và sau đó thêm hàng vào dữ liệu có thể sử dụng được bằng cách sử dụng .Rows.Add(DataRow) HOẶC .Rows.InsertAt(DataRow, Position). Sau đây là một đoạn mã mà bạn có thể sửa đổi theo sự thuận tiện của bạn.

//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 
      }); 
Các vấn đề liên quan