下次调用后,通过数据源通过DataGridView中的DataTable开始复制数据

时间:2018-10-03 16:37:48

标签: c# winforms

我在backgroundWorker_RunWorkerCompleted方法中具有以下代码段。一切都很完美,我期望的数据显示在DataGridView中。

更新的代码:

    private void GetResults()
    {
        dataGridView1.DataSource = null;

        DataTable errorTable= new DataTable();
        errorTable.Columns.Add("Desc", typeof(string));
        errorTable.Columns.Add("Line", typeof(int));
        errorTable.Columns.Add("File", typeof(string));

        foreach (var filePath in relPaths)
        {
            SyntaxCheck sc = new SyntaxCheck
            {
                filePath = singlePath
            };

            errorTable.Merge(sc.searchFiles(), true);
        }

        dataGridView1.DataSource = errorTable;
    }
GetResults()中调用

backgroundWorker_RunWorkerCompleted()

当我再次按下按钮进行所有这些操作时,我的DataGridView就会更新,并且每个结果都有2个。我再做一次,每个结果有3个。我已经检查了两个小时的代码,找不到错误。

看起来它只是在合并中不断添加数据。如果我在文件中编辑数据以使它们不应该出现在数据表中,然后再次按下按钮,则该数据的所有条目都将消失。但是,其他数据仍然与以前相同。

所有数据表都具有相同的列。我试过在各个点上调用Rows.Clear(),什么也没改变。

1 个答案:

答案 0 :(得分:1)

如果将断点添加到代码中,然后将鼠标悬停在errorTable上,您将看到一个向下箭头,然后选择Datatable Visualizer,您将看到该表的内容。因此,您可以通过在代码的不同部分放置断点来找出问题所在,直到找到要添加重复项的地方。