0

人们似乎已经失去了使用现代语言生成旧式 COBOL/RPG 报告的能力。

我经常看到使用依赖于记录计数的 DataReaders 的代码。因此,在不需要时会出现一个额外的聚合查询。

在大多数情况下,此代码需要知道是否有另一条记录可用。换句话说,告诉我是否在最后一条记录,以便我可以显示记录分隔符。

一个简单的算法如下:


Dim available As Boolean = rdr.Read()
While available
  DisplaySearchRecord(rdr)
  available = rdr.Read()
  If available Then DisplaySeparator()
End While

当算法的简单更改就足够时,请不要使用 COUNT(*) 或数据表/数据集。

4

3 回答 3

0

为什么不显示后的分隔符while

   While rdr.Read()
       DisplaySearchRecord(rdr)
   End While
   DisplaySeparator()
于 2009-04-23T14:15:33.847 回答
0

你可以试试这样的

Dim IsFirst As Boolean = True

While rdr.Read()
  If Not IsFirst
    DisplaySeparator()
  Else
    IsFirst = False
  End If

  DisplaySearchRecord(rdr)
End While
于 2009-04-23T14:18:28.537 回答
0

您必须继续调用 reader.Read() ,当没有更多记录时它将返回 false 。

所以我要做的是将数据库中的数据转储到 a 中List<YourRecord>,然后在我填充了列表之后......用 for( i++ ) 循环遍历它并根据 list.Count 检查 i

于 2009-04-23T14:19:12.933 回答