2012-04-04 53 views
-1

但無法找到任何信息。按時限制。C#從數據網格創建表(只有2個字段)

我有一個Datagridview,6個字段。

我需要做一個Datatable只包含2個這些領域。

字段是部分和pareto。

所以我需要所有記錄,但只需要我的Datatable中的2個字段。

用c鋒利.NET 4.0和Microsoft Visual Studio 2010

回答

2
foreach(DataGridViewRow row in myDataGridView.Rows) 
{ 
     DataRow tableRow = myDataTable.NewRow(); 
     tableRow.Cells["part"].value = row["part"].value; 
     tableRow.Cells["pareto"].value = row["pareto"].value; 
     myDataTable.Rows.Add(tableRow); 
} 

這樣的事情應該這樣做。只要確保你的DataTable具有適當的行。

+0

現在我以前試過這個版本,但它在foreach時出錯。 Foreach無法運行,因爲datagridview不包含GetEnumerator的公共定義「 – lemunk 2012-04-04 11:14:50

+0

DataGridview.Rows雖然,你確定你最後添加了.Rows? – Dan 2012-04-04 11:17:57

+0

啊我的錯誤我錯過了該死的東西,那不是原始問題,我遇到的問題是我再次遇到的問題:錯誤:錯誤'object'不包含'value'的定義,也沒有接受類型'object'的第一個參數的擴展方法'value' '可能被發現(你是否遺漏了使用指令或程序集引用? – lemunk 2012-04-04 11:27:04

2
DataGridViewRowCollection coll = dataGridView1.Rows; 

DataTable t = new DataTable(); 

t.Columns.Add(); 

foreach (DataGridViewRow item in coll) 

{ 
    t.Rows.Add(item.Cells[0].Value); 
} 

只需添加你的每一行所需的單元格。您只需過濾列即可。

+0

有點好奇這個,如果你有2個領域,這將如何工作?因爲你循環的單個單元沒有任務? – lemunk 2012-04-04 11:34:46

+0

這個循環也通過datagrdiview.rows,所以它循環遍歷行,而不是單元格。 item.Cells [0]獲取第一個單元格,item.Cells [1]將獲得第二個等... – Dan 2012-04-04 11:50:49

+0

yeh我有一個金髮的時刻。 – lemunk 2012-04-04 12:04:05