来自Datagridview的数据表(数据绑定)

时间:2013-04-21 12:35:54

标签: c# datagridview datatable bindingsource

我通过msdn创建两个datagridviews现在我需要从“detailsDataGridView”获取数据表,但我无法转换它。 错误:无法将System.Windows.Forms.BindingSource转换为类型System.Data.DataTable。

有什么想法吗? 代码,我试过了。

    DataTable d = detailsDataGridView.DataSource as DataTable;
/////////////
        DataTable dt = new DataTable();
        dt = (DataTable)detailsDataGridView.DataSource;
////////////
        BindingSource bs = new BindingSource();
        bs.DataSource = detailsDataGridView.DataSource;
        DataTable d = (DataTable)(bs.DataSource);
////////////
DataTable data = GetDataTableFromDGV(dgvMyMembers);

    private DataTable GetDataTableFromDGV(DataGridView dgv)
    {
        var dt = ((DataTable)dgv.DataSource).Copy();
        foreach (DataGridViewColumn column in dgv.Columns)
        {
            if (!column.Visible)
            {
                dt.Columns.Remove(column.Name);
            }
        }
        return dt;
    }

1 个答案:

答案 0 :(得分:0)

尝试此方法,这就是您所需要的:

  

DataGridView名称是detailsDataGridView,因此您将执行此操作:

     

DataTable data = GetDataTableFromDGV(detailsDataGridView);

然后数据是数据表!

    private DataTable GetDataTableFromDGV(DataGridView dgv)
    {
        var dt = ((DataTable)dgv.DataSource).Copy();
        foreach (DataGridViewColumn column in dgv.Columns)
        {
            if (!column.Visible)
            {
                dt.Columns.Remove(column.Name);
            }
        }
        return dt;
    }

您可以看到我对此问题的回答Here

祝你好运!