using System;
using System.Data;
using System.Data.SqlClient;
class Program
{
static void Main(string[] args)
{
string sqlConnectString = "Data Source=(local);Integrated security=SSPI;Initial Catalog=AdventureWorks;";
string sqlSelect = @"SELECT * FROM Sales.SalesOrderHeader;SELECT * FROM Sales.SalesOrderDetail;";
DataSet ds = new DataSet( );
SqlDataAdapter da;
da = new SqlDataAdapter(sqlSelect, sqlConnectString);
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
da.TableMappings.Add("Table", "SalesOrderHeader");
da.TableMappings.Add("Table1", "SalesOrderDetail");
da.Fill(ds);
DataRelation dr = new DataRelation("SalesOrderHeader_SalesOrderDetail",
ds.Tables["SalesOrderHeader"].Columns["SalesOrderID"],
ds.Tables["SalesOrderDetail"].Columns["SalesOrderID"]);
ds.Relations.Add(dr);
for (int i = 0; i < 2; i++){
DataRow rowHeader = ds.Tables["SalesOrderHeader"].Rows[i];
Console.WriteLine("HEADER: OrderID = {0}, CustomerID = {1}",rowHeader["SalesOrderID"],rowHeader["CustomerID"]);
foreach (DataRow rowDetail in rowHeader.GetChildRows(dr))
{
Console.WriteLine(rowDetail["SalesOrderID"]);
Console.WriteLine(rowDetail["SalesOrderDetailID"]);
Console.WriteLine(rowDetail["LineTotal"]);
Console.WriteLine(rowDetail.GetParentRow(dr)["CustomerID"]);
}
}
}
}