我们之前在产生members 数据表以及orders 数据表时,也定义了这两个数据表之间的关联。如果我们希望维持资料表之间的关系,在数据表取回后可以将数据表的关联加入dataset 对象的relations 集合中。以下为relation 集合加入关联的语法:
dataset.relations.add("关联名称", 父关联主键字段, 子关联外来键字段)
其中两个数据表的关联关系,是由父数据表的主键以及子数据表的外来键字段所组成的,这两个字段分别是members 数据表的主键userid 以及orders 数据表的外来键userid;所以这两个取回来的datatable 要建立关联,也是要透过这两个字段。下列范例建立了members 以及orders数据表之间的关联:
<%@import namespace=system.data.ado%>
<%@import namespace=system.data%>
<script language="vb" runat="server">
sub page_load(sender as object, e as eventargs)
dim strconstr as string = "provider=microsoft.jet.oledb.4.0;" & _
"data source=c:\inetpub\wwwroot\cr\ch05\myweb.mdb"
dim strcomstr as string = "select * from members"
dim dsca as adodatasetcommand = new adodatasetcommand(strcomstr,
strconstr)
dim dsdataset as dataset = new dataset()
dsca.filldataset(dsdataset, "members")
dsca.selectcommand.commandtext = "select * from orders"
dsca.filldataset(dsdataset, "orders")
dsdataset.relations.add("mo",
dsdataset.tables("members").columns("userid"), _
dsdataset.tables("orders").columns("userid"))
end sub
</script>
这样这两个datatable 的关联就建立完成了,并且由dataset 中的relations 集合对象所管理。
