上述范例使用了for each...in 的循环结构,如下所示:
for each rowtemp in
dsdataset.tables("members").rows(shti).getchildrows("mo")
response.write("<br>订单日期: " & rowtemp("orderdate") & _
" / 订购产品: " & rowtemp("productname") & _
" / 产品单价: " & rowtemp("unitprice") & _
" / 订购数量: " & rowtemp("quantity") & _
" / 小计: " & rowtemp("total"))
next
在执行for each...in 循环结构时,会将in 后面的集合对象中第一个对象的内存地址从内存取出,并由for each 后面的变量接收;遇到next 叙述时则取出下一个在集合对象中的项目,并将内存地址给for each 后面的变量接收,直到集合对象中的所有对象全部被取出完毕为止。利用foreach...in 这种循环结构的好处是可以让我们以单一的变量名称,就可以参考到所有在集合中的对象。下列插图中假设有一个colletions 集合,并群组了三个对象;所以我们可以使用foreach...in 的循环结构将集合对象中,每一个项目的内存地址一一取出,并存入obja 对象型态的变量中来控制这些对象:

故上述程序执行时将dsdataset.tables("members").rows(shti).getchildrows("mo") 集合中的第一个子关联的记录取回,并放入rowtemp 这个存放datarow 型态的对象变量中,所以我们就可以利用rowtemp 这个变量来控制集合中的第一个对象;遇到next 叙述后再取出集合中的下一个对象的内存地址,直到集合中的项目被取完为止。
利用关联将父关联记录取出
下列范例利用datarow 对象的getparentrow 方法取得orders 订单记录的父关联记录,并指定所要取出的字段为userid:
<%@import namespace=system.data.ado%>
| 对此文章发表了评论 |

