C#DataTable可数抛出KeyNotFoundException:这是缺少的行或列还是其他什么?

C#DataTable可数抛出KeyNotFoundException:这是缺少的行或列还是其他什么?,c#,datatable,asenumerable,C#,Datatable,Asenumerable,我在迭代一个大数据表(300k行)时遇到问题。不幸的是,这个问题不能按需重现,所以我不知道如何解决它。在适当的条件下,应演示问题的最少代码: var data = dataTable.AsEnumerable().Select(r => r.Field<string>("name")).ToArray(); 编辑: DataTable是使用以下MySQL查询创建的: using (MySqlDataAdapter dataAdapter = new MySqlDataAdap

我在迭代一个大数据表(300k行)时遇到问题。不幸的是,这个问题不能按需重现,所以我不知道如何解决它。在适当的条件下,应演示问题的最少代码:

var data = dataTable.AsEnumerable().Select(r => r.Field<string>("name")).ToArray();
编辑: DataTable是使用以下MySQL查询创建的:

using (MySqlDataAdapter dataAdapter = new MySqlDataAdapter(commandText, connectionString))
{
    dataAdapter.SelectCommand.CommandType = commandType;
    // Use DataSet to avoid bug in MySqlDataAdapter with filling tables directly
    DataSet dataSet = new DataSet();
    dataAdapter.Fill(dataSet);
    var dataTable = dataSet.Tables[0];
}

如果省略
.ToArray()
,行为是否有所不同?数据流是否在某个地方?我们可以看看DataTable是如何创建的吗?错误被抛出到.ToArray()语句中。如果我将其拆分为两行,一行是AsEnumerable,第二行是.ToArray()语句,则会在.ToArray上抛出错误。DataTable是从MySQL查询创建的。我并不是每次都看到错误,只有大约1/200次。
Column 'name' does not belong to table .
+ System.Data.DataRow.GetDataColumn(string)
+ System.Data.DataRow.get_Item(string)
+ System.Data.DataRowExtensions.Field<T>(System.Data.DataRow, string)
+ System.Linq.Enumerable.WhereSelectEnumerableIterator<TSource, TResult>.MoveNext()
+ Buffer<TElement>..ctor(IEnumerable<TElement>)
+ System.Linq.Enumerable.ToArray<TSource>(IEnumerable<TSource>)
using (MySqlDataAdapter dataAdapter = new MySqlDataAdapter(commandText, connectionString))
{
    dataAdapter.SelectCommand.CommandType = commandType;
    // Use DataSet to avoid bug in MySqlDataAdapter with filling tables directly
    DataSet dataSet = new DataSet();
    dataAdapter.Fill(dataSet);
    var dataTable = dataSet.Tables[0];
}