我嘗試將選定的行導入到DataTable中以將其發送到函數。我去按鈕Clickevent一組以下代碼:在DataTable中導入DataRow
var dt = new DataTable();
foreach (var DataRow in dataGridView1.SelectedRows)
dt.ImportRow(DataRow);
但有一個錯誤,無法從對象轉換爲DataRow。任何建議來解決這個問題?
我嘗試將選定的行導入到DataTable中以將其發送到函數。我去按鈕Clickevent一組以下代碼:在DataTable中導入DataRow
var dt = new DataTable();
foreach (var DataRow in dataGridView1.SelectedRows)
dt.ImportRow(DataRow);
但有一個錯誤,無法從對象轉換爲DataRow。任何建議來解決這個問題?
您不能使用ImportRow
,因爲它需要DataRow
。 DataGridView.SelectedRows
將返回一個DataGridViewRow
的集合。
A DataGridViewRow
是不是 a DataRow
。但是,你可以使用DataGridViewRow
的DataBoundItem
物業,以獲得實際的DataRow
:
foreach (DataGridViewRow dataRow in dataGridView1.SelectedRows)
{
DataRow dataBoundItem = ((DataRowView)dataRow.DataBoundItem).Row;
dt.ImportRow(dataBoundItem);
}
Thx爲您的答案。 dataBoundItem現在包含每一行,但在dt.importRow中沒有任何操作。我調試foreach循環dataBoundItem包含DataRow但dt是空的。我不知道爲什麼。 – kockiren 2011-03-14 14:27:40
@kockiren - 只有在您要導入的DataTable與您從中導入的DataTable的列匹配時纔會起作用。 – GenericTypeTea 2011-03-14 14:30:26
有沒有一種簡單的方法來創建TableStructur或創建結構與foreach dataRow.column – kockiren 2011-03-14 14:55:39
DataTable.ImportRow需要DataRow。但是,datagridview1包含DataGridViewRows。您需要找到一種方法來在兩者之間轉換(example),或者從DataGridViewRow的數據構建新的DataRow。
該項目由「dataGridView1.SelectedRows」返回類型應該是的「GridViewItem」,而不是DataRow中。 – 2011-03-14 11:29:12
Datview在Gridview中? – V4Vendetta 2011-03-14 11:29:46
Actualy它必須是'DataGridViewRow':http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewselectedrowcollection.aspx – Stecya 2011-03-14 11:29:59