关联建立之后,我们就可以享受到关联的好处了。我们可以透过DataRow 对象的GetChildRows以及GetParentRow 方法取得记录的子记录或是父记录;这个方法接收的一个参数,就是我们加到关联集合的关联名称。下列范例将每一个使用者所下过的订单列出:
<%@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:InetPubwwwrootCRCH05MyWeb.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(0).Columns("UserId"), _
dsDataSet.Tables(1).Columns("UserId"))
Dim shtI As Short
Dim rowTemp As DataRow
For shtI=0 To dsDataSet.Tables("Members").Rows.Count-1
Response.Write("使用者: " &
dsDataSet.Tables("Members").Rows(shtI)("UserId") & _
" 所下过的订单有:")
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
Response.Write("<p>")
Next
End Sub
</SCRIPT>