C# Datatable.GetChanges()始终返回null

C# Datatable.GetChanges()始终返回null,c#,linq,dataset,strongly-typed-dataset,C#,Linq,Dataset,Strongly Typed Dataset,我试图做的是编辑匹配的行并更改列的值,但它始终返回null。我相信这是因为我将查询保存到对象的方式,因为如果我直接访问查询,那么每次它都会继续处理查询。处理这个问题的最佳方法是什么 using (SymbolsTableAdapter symbolAdapter = new SymbolsTableAdapter()) using (Dataset.SymbolsDataTable symbolTable = new Dataset.SymbolsDataTable()) { symbo

我试图做的是编辑匹配的行并更改列的值,但它始终返回null。我相信这是因为我将查询保存到对象的方式,因为如果我直接访问查询,那么每次它都会继续处理查询。处理这个问题的最佳方法是什么

using (SymbolsTableAdapter symbolAdapter = new SymbolsTableAdapter())
using (Dataset.SymbolsDataTable symbolTable = new Dataset.SymbolsDataTable())
{
    symbolAdapter.Fill(symbolTable);

    foreach (var error in errors)
    {
        var query = from c in symbolTable
                    where c.Symbol == error.Key && c.Market == error.Value
                    select c;

        Dataset.SymbolsRow row = query.AsParallel().FirstOrDefault();

        if (row != null)
        {
            row.isUnderReview = true;
        }
    }

    // now save
    if (symbolTable.GetChanges() != null)
    {
        symbolTable.AcceptChanges();
    }
}

好的,我不确定为什么AcceptChanges实际上没有做任何事情,但我将代码更改为下面的代码,它可以很好地供任何人将来参考

Dataset.SymbolsDataTable tempSymbolsTable = new Dataset.SymbolsDataTable();
tempSymbolsTable = (Dataset.SymbolsDataTable)symbolTable.GetChanges();

                if (tempSymbolsTable != null)
                {
                    symbolAdapter.Update(tempSymbolsTable);
                    tempSymbolsTable.Dispose();
                }

代码中的错误是什么?它是否进入了循环?@dotnetstep它从未收到任何错误,但它从未触及到symbolTable.AcceptChanges()这一行;因为它从不进入循环,所以表在加载后不会更改,所以找不到任何更改,所以无法点击“接受更改”。@dotnetstep我需要指出的是,它确实进入循环,并且它确实点击了它更改rowTry Dataset.SymbolRow=query.FirstOrDefault()中值的行;而不是你的门冬氨酸