我通过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;
}
答案 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
祝你好运!