как проверить на 60000 запись? - PullRequest
1 голос
/ 07 апреля 2011

У меня есть отчет, который показывает только 60000 записей. Я должен проверить, имеет ли 60001 тот же идентификатор сотрудника, равный 60000, тогда он должен также включить это.Как это сделать?

Пример: есть 3 идентификатора сотрудника и 3 подразделения (имя столбца)

 e1 d1
 e1 d2
 e2 d1
 e2 d2
 e2 d3

Но с моей правильной логикой я получу записи до e2 d1, потому что он имеет60000 записей для них, но я хочу, чтобы все записи e2 также.

Данные будут получены из oracle db, а код находится в c #.Отчет отправляется через код C # и используется oracle db.

Мой отчет может содержать только 60000 записей, но в этих записях, если идентификатор сотрудника (пример 1,2,3) имеет несколько делений (1,2, 3) тогда мой код выдает записи до e1 d1 e1 21 e1 d3 e2 d1, но я хочу также все записи e2.Как я могу это сделать?

Пример кода

        for (int j = 1; j <= rowCounter && j <= maxRowCount; j++)
        {
            DataRow drhrReport = dtReportData.Rows[j];
            for (int colCounter = 0; colCounter < iColCount; colCounter++)
            {
                if (!Convert.IsDBNull(drhrReport[colCounter]))
                {
                    swhrReport.Append(Convert.ToString(drhrReport[colCounter]));
                }
                if (colCounter < iColCount - 1)
                {
                    swhrReport.Append(",");
                }
         }

1 Ответ

0 голосов
/ 07 апреля 2011

Я предполагаю, что maxRowCount установлено на 60 000.В этом случае вы можете изменить свой код следующим образом:

    string lastEmpId = null;
    for (int j = 1; j <= rowCounter; j++)
    {
        DataRow drhrReport = dtReportData.Rows[j];
        if (j == maxRowCount) {
           lastEmpId = (string)drhrReport[colEmpId];
        } else if ((j > maxRowCount) && (string)drhrReport[colEmpId] != lastEmpId) 
           break;
        }
        for (int colCounter = 0; colCounter < iColCount; colCounter++)
        {
            if (!Convert.IsDBNull(drhrReport[colCounter]))
            {
                swhrReport.Append(Convert.ToString(drhrReport[colCounter]));
            }
            if (colCounter < iColCount - 1)
            {
                swhrReport.Append(",");
            }
     }

Итак, это, конечно, не проверено, но, надеюсь, вы поняли идею.Я перенес проверку против maxRowCount в тело цикла for и сделал так, чтобы в последнем ряду он сохранял empId, после чего он выходил из цикла for только при повторном изменении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...