6

我正在将 ColdFusion 应用程序转换为 C#(我是 CF n00b)。

我有一个脚本,它执行 cfquery,然后 cfloop 遍历结果,它似乎试图将当前行与其下一行进行比较。它似乎试图确保它不会尝试读取数组的末尾。

<cfquery name="qTripLegs" datasource="#sdb#">
   SELECT ...
</cfquery>

<cfloop query="qTripLegs">
    <cfif (customs_stop[currentrow] NEQ "" OR fuel_stop[currentrow] NEQ "") AND recordcount GT currentrow AND departure[currentrow] NEQ arrival[currentrow+1]>

感觉 currentrow 是从 1 开始的(当它第一次进入 cfloop 时,currentrow 的值为 1)。我对么?我查看了coldfusion文档,但对此一无所知。

4

1 回答 1

21

是的,CF 中的查询和数组是从 1 开始的。

CurrentRow 和 RecordCount 变量是查询的属性(在查询循环内,它们自动限定范围)。

<cfloop query="QueryName">...</cfloop>将遍历整个查询*,从 1 到QueryName.RecordCount,并且QueryName.CurrentRow索引会自动适当地填充/递增。不使用查询循环之前的值。

*(除非使用 cfbreak/etc)

还要指出,通常不需要阻止读取结束(如上所述,查询循环会处理它),只是因为使用了 CurrentRow+1 才需要避免错误。

于 2013-01-09T00:30:59.723 回答