Datagridview中的数据表(databinding)

本文关键字:databinding 数据表 Datagridview | 更新日期: 2023-09-27 18:10:16

我使两个datagridview通过msdn现在我需要从"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;
    }

Datagridview中的数据表(databinding)

试试这个方法,这就是你需要的:

DataGridView的名称是detailsDataGridView,所以你要这样做:

DataTable data = getdatatablefromgv (detailsDataGridView);

那么data就是数据表!

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

你可以在这里看到我对这个问题的回答

祝你好运!