ChildViews e relações
Se houver uma relação entre tabelas em uma DataSet, você poderá criar uma DataView linha contendo da tabela filho relacionada usando o CreateChildView método das DataRowView linhas na tabela pai. Por exemplo, o código a seguir exibe Categorias e seus Produtos relacionados em ordem alfabética classificada por CategoryName e ProductName.
Dim catTable As DataTable = catDS.Tables("Categories")
Dim prodTable As DataTable = catDS.Tables("Products")
' Create a relation between the Categories and Products tables.
Dim relation As DataRelation = catDS.Relations.Add("CatProdRel", _
catTable.Columns("CategoryID"), _
prodTable.Columns("CategoryID"))
' Create DataViews for the Categories and Products tables.
Dim catView As DataView = New DataView(catTable, "", _
"CategoryName", DataViewRowState.CurrentRows)
Dim prodView As DataView
' Iterate through the Categories table.
Dim catDRV, prodDRV As DataRowView
For Each catDRV In catView
Console.WriteLine(catDRV("CategoryName"))
' Create a DataView of the child product records.
prodView = catDRV.CreateChildView(relation)
prodView.Sort = "ProductName"
For Each prodDRV In prodView
Console.WriteLine(vbTab & prodDRV("ProductName"))
Next
Next
DataTable catTable = catDS.Tables["Categories"];
DataTable prodTable = catDS.Tables["Products"];
// Create a relation between the Categories and Products tables.
DataRelation relation = catDS.Relations.Add("CatProdRel",
catTable.Columns["CategoryID"],
prodTable.Columns["CategoryID"]);
// Create DataViews for the Categories and Products tables.
DataView catView = new DataView(catTable, "", "CategoryName",
DataViewRowState.CurrentRows);
DataView prodView;
// Iterate through the Categories table.
foreach (DataRowView catDRV in catView)
{
Console.WriteLine(catDRV["CategoryName"]);
// Create a DataView of the child product records.
prodView = catDRV.CreateChildView(relation);
prodView.Sort = "ProductName";
foreach (DataRowView prodDRV in prodView)
Console.WriteLine("\t" + prodDRV["ProductName"]);
}