如何查看第60000条记录?

时间:2011-04-07 08:35:23

标签: c# oracle

我有一份只显示60000条记录的报告。我必须检查60001是否具有60000的相同员工ID,然后它必须包含该记录。怎么做?

示例:有3个员工ID和3个部门(列名称)

 e1 d1
 e1 d2
 e2 d1
 e2 d2
 e2 d3

但是根据我的正确逻辑,我会得到记录直到e2 d1,因为它有60000条记录,但我也想要所有e2记录。

数据将来自oracle db,代码位于c#中。报告通过C#代码发送,并使用oracle db。

我的报告只能有60000条记录,但在该记录中,如果员工ID(示例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 :(得分:0)

我假设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循环。 / p>