2011-03-14 61 views
2

我嘗試將選定的行導入到DataTable中以將其發送到函數。我去按鈕Clickevent一組以下代碼:在DataTable中導入DataRow

var dt = new DataTable(); 
foreach (var DataRow in dataGridView1.SelectedRows) 
    dt.ImportRow(DataRow); 

但有一個錯誤,無法從對象轉換爲DataRow。任何建議來解決這個問題?

+0

該項目由「dataGridView1.SelectedRows」返回類型應該是的「GridViewItem」,而不是DataRow中。 – 2011-03-14 11:29:12

+0

Datview在Gridview中? – V4Vendetta 2011-03-14 11:29:46

+2

Actualy它必須是'DataGridViewRow':http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewselectedrowcollection.aspx – Stecya 2011-03-14 11:29:59

回答

4

您不能使用ImportRow,因爲它需要DataRowDataGridView.SelectedRows將返回一個DataGridViewRow的集合。

A DataGridViewRow不是 a DataRow。但是,你可以使用DataGridViewRowDataBoundItem物業,以獲得實際的DataRow

foreach (DataGridViewRow dataRow in dataGridView1.SelectedRows) 
{ 
    DataRow dataBoundItem = ((DataRowView)dataRow.DataBoundItem).Row; 
    dt.ImportRow(dataBoundItem); 
} 
+0

Thx爲您的答案。 dataBoundItem現在包含每一行,但在dt.importRow中沒有任何操作。我調試foreach循環dataBoundItem包含DataRow但dt是空的。我不知道爲什麼。 – kockiren 2011-03-14 14:27:40

+0

@kockiren - 只有在您要導入的DataTable與您從中導入的DataTable的列匹配時纔會起作用。 – GenericTypeTea 2011-03-14 14:30:26

+0

有沒有一種簡單的方法來創建TableStructur或創建結構與foreach dataRow.column – kockiren 2011-03-14 14:55:39

相關問題