gpt4 book ai didi

c# - 如何从 DataGridView 构建 DataTable?

转载 作者:可可西里 更新时间:2023-11-01 07:49:31 24 4
gpt4 key购买 nike

我可能正在倒着看这个问题,但我还是很好奇。有没有办法根据 DataGridView 中当前显示的内容构建 DataTable

需要说明的是,我知道您可以执行此操作 DataTable data = (DataTable)(dgvMyMembers.DataSource); 但是这包括隐藏的列。我只想从显示的列构建它。

希望这是有道理的。


所以我最终尝试了几个答案的组合,因为这似乎是最好的。以下是我正在尝试的。基本上我是从数据源创建数据表,然后根据列是否可见向后工作。但是,在它删除一列后,我得到一个 Collection was modified;枚举操作可能不会在 foreach 的下一次迭代中执行

我很困惑,因为我没有尝试修改DataGridView,只有DataTable 所以这是怎么回事?

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

最佳答案

嗯,你可以的

DataTable data = (DataTable)(dgvMyMembers.DataSource);

然后使用

data.Columns.Remove(...);

我认为这是最快的方法。这将修改数据源表,如果您不需要它,则需要复制表。另请注意,DataGridView.DataSource 不一定是 DataTable 类型。

关于c# - 如何从 DataGridView 构建 DataTable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6295161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com