2014-01-24 69 views
1

我需要datagridview的選定的行存儲到數據表中在單個列像下面如何將數據網格存儲到數據表中?

的DataGridView

user1 user2 user3 
ram sam ravi 

的DataTable

values 
ram 
sam 
ravi 

我嘗試下面的代碼

DataTable dt = new DataTable(); 
dt.Columns.Add("values",typeof(string)); 

foreach (DataGridViewRow gridRow in dataGridView_settings.Rows) 
{ 
     DataRow dtRow = dt.NewRow(); 

     for (int i = 0; i < dataGridView_settings.Columns.Count; i++) 
     { 
      dtRow[0] = gridRow.Cells[i].Value; 
      dt.Rows.Add(dtRow); 
     } 
} 

問題是它的在數據表中僅添加一行然後顯示錯誤「此行已屬於此表」。

+0

錯誤放置的DataRow dtRow = dt.NewRow()清除;在for循環 – Happy

+0

[如何將datagrid中的選擇行存儲到數據表中](http://stackoverflow.com/questions/21328131/how-to-store-select-row-in-datagrid-into-datatable) – andy

回答

0

你應該移動的DataRow創建到內爲

DataTable dt = new DataTable(); 
dt.Columns.Add("values",typeof(string)); 
foreach (DataGridViewRow gridRow in dataGridView_settings.Rows) 
{ 
     for (int i = 0; i < dataGridView_settings.Columns.Count; i++) 
     { 
      DataRow dtRow = dt.NewRow(); 
      dtRow[0] = gridRow.Cells[i].Value; 
      dt.Rows.Add(dtRow); 
     } 
} 
+0

它將所有行插入到datatable.how中僅執行選定的行 – Happy

+0

如果您只想添加所選行,請更改外部foreach,更改按行數排序: foreach(dataGridView_settings.SelectedRows中的DataGridViewRow gridRow) – mnieto

相關問題