将搜索到的行从DataGridView复制到另一个DataGridView

时间:2012-07-10 06:57:24

标签: c# visual-studio-2008 datagridview datasource

我们如何在同一表单上将一个或多个行从数据网格视图复制到其他数据网格视图。在这里,我搜索从第一个网格搜索的选项,如果找到一些匹配的行,则将它们复制到第二个网格。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以这样做:

ConvertGridToTable();  // Add data in Datatabledt from gridview
Clipboard.Clear();
DataObject data = new DataObject(DataFormats.Serializable, Datatabledt);
MessageBox.Show("Data Copied.");
Clipboard.SetDataObject(data);

现在可以在剪贴板中使用Datatabledt,您可以将其粘贴到第二个gridview中,您可以使用它来执行此操作:

DataObject data = (DataObject)Clipboard.GetDataObject();
DataTable dt = (DataTable)data.GetData(DataFormats.Serializable);

foreach (DataRow dr in dt.Rows)
{
    dtData.ImportRow(dr);
}
dtData.AcceptChanges();
grdProgramData.DataSource = dtData;
MessageBox.Show("Data Pasted.");

编辑:

对于一行或多行,您可以通过循环选定的行来实现这一目标。

修改

这是ConvertGridToTable

中的内容
private void ConvertGridToTable()
{

    if (Datatabledt.Rows.Count > 0)
    { }

    Datatabledt = dtData.Clone();

    foreach (DataGridViewRow gr in YOURGRIDVIEW.SelectedRows)
    {
        DataRow dc = Datatabledt.NewRow();
        dc["KEY-FIELD"] = Int32.Parse(gr.Cells[0].Value.ToString());
        .....

        Datatabledt.Rows.Add(dc);
    }
    Datatabledt.AcceptChanges();
}