我有两个具有相同列模式的DataGridViews(尽管两个不同的DataViews作为DataSource - 如果这很重要)。将行从一个数据网格视图移动到另一个数据网格的最佳/最快方法是什么?
答案 0 :(得分:1)
我相信如果你在DataTable table1中有一行并希望将它添加到DataTable table2,你可以这样做:
table2.Rows.Add(row.ItemArray);
然后您还必须删除这样的行:
table1.Rows.Delete(row);
这只是伪代码,但应该可行,我过去就是这样做的。
当然,只有当两个表都具有相同的模式时才会起作用,如上所述。
答案 1 :(得分:1)
即使我有两个DataTable作为我的DataGridViews的绑定,我也看不到使用DataGridView获取所选行并移动它们的任何方法,这是我的应用程序的要求。
<强> GridUtility.cs 强>
/// <summary>
/// Gets a list of the DataRow objects that are the datasources for a DataGridViews selected rows
/// </summary>
/// <param name="rows"></param>
/// <returns></returns>
public static DataRow[] GetSelectedDataRows(DataGridView grid)
{
DataRow[] dRows = new DataRow[grid.SelectedRows.Count];
for (int i = 0; i < grid.SelectedRows.Count; i++)
dRows[i] = ((DataRowView)grid.SelectedRows[i].DataBoundItem).Row;
return dRows;
}
/// <summary>
/// move row from one grid to another
/// </summary>
public void MoveRows(DataTable src, DataTable dest, DataRow[] rows)
{
foreach (DataRow row in rows)
{
// add to dest
dest.Rows.Add(row.ItemArray);
// remove from src
src.Rows.Remove(row);
}
}
使用它:
GridUtility.MoveRows(fromTable, toTable,
GridUtility.GetSelectedDataRows(fromDataGridView));