父表与子表同步加载之二
上一节介绍的父表与子表同步加载的方法,对于多数用户来说,可能稍微复杂了一点,而且效率相对比较低,帮助之所以保留这种方法,主要还是为了让大家熟悉和演练一下SQL语句。
实际上,Foxtable提供了非常简单高效的同步加载方法,你要做的只需在父表的AfterLoad事件中加上一行代码:
e.DataTable.LoadChildren("子表")
例如订单和订单明细通过订单编号建立关联,订单表动态加载,每次只加载一定数量的订单进行处理,为了每次加载订单后,能同步加载这些订单的订单明细,只需在订单表的AfterLoad事件加上代码:
e.DataTable.LoadChildren("订单明细")
是的,就是这么简单,因为你用的是Foxtable。
LoadChildren是DataTable的一个方法,用于加载子表数据,而且只加载那些父表已经存在对应行的子表数据。
语法
LoadChildren(子表名称)
LoadChildren(子表名称, 父表关联列名称, 子表关联列名称)
由LoadChildren的语法可以看出,如果父表和子表没有建立关联,我们可以通过指定关联列来实现同步加载,例如:
DataTables("订单").LoadChildren("订单明细", "订单编号", "订单编号")
并非只能通过父表加载子表数据,只要你愿意,也可以通过子表加载父表数据,语法:
DataTables("子表").LoadChildren("父表", "关联列", "关联列")