DataTable Rows.Add() 属性 仅添加空行,即使在使用已填充的 DataRow 时也是如此

DataTable Rows.Add() property only adding empty rows even when using a populated DataRow

我有一个 DataGridView,我试图清空数据然后将数据放回其中,但无论我尝试用什么方法填充 dgv,我都只会得到空行。

我有这段代码,但无论我尝试什么,dt.Rows.Add(sortestStus[row]) 总是会导致添加一个空行。

sortedStus = Split_List(stuRows);

DataTable dt = (DataTable)dgvClassStuInfo.DataSource;
dgvClassStuInfo.DataSource = dt;
dt.Clear();

for (int row = 0; row < sortedStus.Count; row++)
{
    dt.Rows.Add(sortedStus[row]);
}

sortedStus 是由合并排序填充的 List<DataRow> - 这按预期工作并且 sortedStus 填充了具有预期数据的行。 dt.Clear(); 正在按预期工作并删除所有行,但导致问题的是 for 循环。

我试过 dt.NewRow(); 并单独添加每个项目,但仍然无效,我还尝试刷新 dgv 和数据表,但也无效。有人有什么想法吗?

ETA:抱歉,如果这是一个重复的问题,但我似乎找不到任何与此问题相关的问题,只是尝试实际添加空行。

ETA2:尝试 dt.Rows.Clear(); 作为匿名建议具有相同的行为

我想出了一个解决方案

我的问题实际上是 Simple way to convert datarow array to datatable

的重复

我需要将 dt 初始化为 DataTable 的新实例并使用 sortedStus.CopyToDataTable() 填充它,然后将 DataGridView 的数据源设置为 dt.

现在结束问题。