使用CreateDataReader中的reader与Datatable.Rows上的循环不同

时间:2014-07-22 19:07:37

标签: c# datatable

我读了一个excel文件并将其放在Datatable中。 如果我放置一个断点并检查myDatatable.Rows.Count()的值,它等于我的excel文件中的行数。 但后来我将我的datatable对象传递给这样的方法:

private void Foo(Datatable dt)
{
   DataTableReader reader = dt.CreateDataReader();
   while(reader.Read())
   {
        // do stuff on each row 
   }
}

现在,如果我在我的while loop中放置一个计数器,它会显示例如10,而行数实际上是100000。 我做错了什么?

2 个答案:

答案 0 :(得分:1)

这应该与for-each上的DataTable.Rows循环类似 我在你while loop的某个地方猜测你正在退出循环。确保您已正确使用“break”和“continue”。

答案 1 :(得分:0)

是什么让你觉得有什么不对?该表将具有例如100000行,不会改变。 DataReader一次一行地遍历表,每次迭代都会有不同的位置。