Mega Code Archive

 
Categories / C# Tutorial / ADO Net
 

Navigating Between Parent and Child Tables in an Untyped DataSet

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"]);                 }             }         }     }