我们之前在产生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: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("Members").Columns("UserId"), _
dsDataSet.Tables("Orders").Columns("UserId"))
End Sub
</SCRIPT>
这样这两个DataTable 的关联就建立完成了,并且由DataSet 中的Relations 集合对象所管理。