Я прочитал файл Excel и поместил его в Datatable
. Если я поставил myDatatable.Rows.Count()
останова и myDatatable.Rows.Count()
значение 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. Что я делаю неправильно?
Это должно работать подобно циклу for-each
в DataTable.Rows
Я угадываю, где-то в вашем while loop
вы выходите из цикла. Убедитесь, что вы правильно использовали " break
" и " continue
".
Что заставляет вас думать что-то неправильно? Таблица будет иметь, например, 100000 строк, которые не будут меняться. DataReader, итерация по таблице по одной строке за раз, будет иметь другую позицию на каждой итерации.