Member 12931315 Ответов: 1

Как я могу зациклить эти данные


У меня есть набор данных, показанных ниже (три столбца)

empno дата время
----- ---- ----
200175 01.01.2017 0801
200175 01.01.2017 1740
200178 01.01.2017 0745
200178 01.01.2017 1240
200178 01.01.2017 1320
200178 01.01.2017 1740
200178 02.01.2017 0750
200178 02.01.2017 1230
200178 02.01.2017 1310
200178 02.01.2017 1620

Я хочу сначала зациклиться на выбранной дате, а затем на двух записях первого сотрудника
когда закончите со следующим сотрудником в тот же день аналогично
для меня второй цикл работал, но первый цикл все еще находился в начальной точке
Я хочу, чтобы второй цикл также был обновлен

Я новичок в c# , так что надеюсь, что вы все понимаете мои ошибки

кто-нибудь может мне помочь

Спасибо

Аджит

Что я уже пробовал:

int x=0;
DateTime  dFDate =thistext1;
DateTime  dTDate =thistext2;

for (DateTime x = dFDate; x <= dTDate; x = x.AddDays(1))
{

    dDDate = x;
    duserdata = this.timeattDataSet.data;
    DataRow[] result1 = duserdata.Select("Date = #" + dDDate + "#");

    foreach (DataRow rowsdate in result1)
    {
      if (System.DateTime.Equals(rowsdate["Date"], dDDate))
      {
      string cEmpno = rowsdate["Token_no"].ToString();
      DataRow[] result2 = duserdata.Select("Date = #" + dDDate + "#" + " AND " + " Token_no = " + cEmpno) ;

      foreach (DataRow rowstime in result2)
      {

         // Here I calculate time period
         // this loop work fine

      }
    }
  }
}

Perić Željko

Я думаю, что вы должны сортировать данные сначала по дате-времени, а не по сотруднику в предпочтительном порядке сортировки. После этого вам не нужно многократное циклическое корыто данных, просто последовательно считывайте отсортированные данные.

1 Ответов

Рейтинг:
2

RickZeeland

Я думаю, что более эффективно использовать SQL-запрос, который извлекает только те записи, которые вас интересуют (особенно если у вас большая база данных), например:

SELECT * FROM Orders
WHERE OrderDate BETWEEN #07/04/1996# AND #07/09/1996#;
Затем вы можете использовать SQL datareader для циклического просмотра результатов, см. пример здесь: [^]


Member 12931315

Спасибо, но я использую строки набора данных, есть ли функция чтения в строках

Аджит

RickZeeland

Смотрите ответ здесь: https://www.codeproject.com/Answers/1189436/How-to-move-to-next-row-in-while-loop#answer1