【问题标题】:Copy Searched Rows from DataGridView to Another DataGridView将搜索到的行从 DataGridView 复制到另一个 DataGridView
【发布时间】:2012-07-10 06:57:24
【问题描述】:

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

【问题讨论】:

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


    【解决方案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 在剪贴板中可用,您可以将其粘贴到第二个网格视图中,您可以这样做:

    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();
    }
    

    【讨论】:

    • ConvertGridToTable();你能描述一下吗……它是预定义的还是用户定义的,如果是用户定义的,那么要做什么以及如何做?
    • @Itz.Irshad 更新了我的答案
    猜你喜欢
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多