DataRelation的基本觀念在於,DataTable與DataTable之間,如果要建立關聯性,必須存在於同一個DataSet,再將DataTable加入分為Parent及Child的概念,建立關聯性程式碼如下:
private void CreateRelation()
{
// 建立Parent的關聯欄位
DataColumn parentColumn = DataSet1.Tables["Customers"].Columns["CustID"];
// 建立Chlid的關聯欄位
DataColumn childColumn = DataSet1.Tables["Orders"].Columns["CustID"];
// 建立關連性
DataRelation rel = new DataRelation("CusOrd", parentColumn, childColumn);
// 將關聯性置於DataSet中
DataSet1.Relations.Add(rel);
}
讀取資料的方是如下:
//由Parent角度讀取Child資料
for(DataRow row in DataSet1.Tables["Customers"].Rows)
{
//多筆->回傳陣列
DataRow[] dr = row.GetChildRows("CustomersOrders");
for(int i=0; i< dr.count; i++)
{
//process dr (即關聯中的Orders)資料
}
}
//由Child角度讀取Parent資料
foreach(DataRow row in DataSet1.Tables["Orders"].Rows)
{
//單筆
DataRow parentRow = row.GetParentRow("CustomersOrders");
}