Data relation: Set up DataRelation

Started by dhilipkumar, Feb 07, 2009, 09:18 PM

Previous topic - Next topic

dhilipkumar

Data relation: Set up DataRelation

using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Text;

class Program {
    static void Main(string[] args) {
        SqlConnection thisConnection = new SqlConnection(
             @"Server=(local)\sqlexpress;Integrated Security=True;" +
             "Database=northwind");

        SqlDataAdapter thisAdapter = new SqlDataAdapter(
             "SELECT CustomerID, CompanyName FROM Customers", thisConnection);
        SqlCommandBuilder thisBuilder = new SqlCommandBuilder(thisAdapter);

        DataSet thisDataSet = new DataSet();

        SqlDataAdapter custAdapter = new SqlDataAdapter(
             "SELECT * FROM Customers", thisConnection);
        SqlDataAdapter orderAdapter = new SqlDataAdapter(
             "SELECT * FROM Orders", thisConnection);
        custAdapter.Fill(thisDataSet, "Customers");
        orderAdapter.Fill(thisDataSet, "Orders");

        DataRelation custOrderRel = thisDataSet.Relations.Add("CustOrders",
             thisDataSet.Tables["Customers"].Columns["CustomerID"],
             thisDataSet.Tables["Orders"].Columns["CustomerID"]);

        foreach (DataRow custRow in thisDataSet.Tables["Customers"].Rows) {
            Console.WriteLine("Customer ID: " + custRow["CustomerID"] +
                              " Name: " + custRow["CompanyName"]);
            foreach (DataRow orderRow in custRow.GetChildRows(custOrderRel)) {
                Console.WriteLine("  Order ID: " + orderRow["OrderID"]);
            }
        }
        thisConnection.Close();
    }
}

dhilipkumar

Re: Data relation: Set up DataRelation


using System;
using System.Data;
using System.Data.SqlClient;

class NestedXml
{
  public static void Main()
  {
    SqlConnection mySqlConnection =new SqlConnection("server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;");

    SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
    mySqlCommand.CommandText =
      "SELECT TOP 2 EmployeeID, CompanyName " +
      "FROM Employee " +
      "ORDER BY EmployeeID;"  +
      "SELECT DeptID, EmployeeID, City " +
      "FROM Dept " +
      "WHERE EmployeeID IN (" +
      "  SELECT TOP 2 EmployeeID " +
      "  FROM Employee " +
      "  ORDER BY EmployeeID " +
      ")";
    SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();
    mySqlDataAdapter.SelectCommand = mySqlCommand;
    DataSet myDataSet = new DataSet();
    mySqlConnection.Open();
    int numberOfRows = mySqlDataAdapter.Fill(myDataSet);
    Console.WriteLine("numberOfRows = " + numberOfRows);
    mySqlConnection.Close();
    DataTable customersDT = myDataSet.Tables["Table"];
    DataTable ordersDT = myDataSet.Tables["Table1"];

    DataRelation customersDeptDataRel =
      new DataRelation(
        "EmployeeDept",
        customersDT.Columns["EmployeeID"],
        ordersDT.Columns["EmployeeID"]
      );
    myDataSet.Relations.Add(
      customersDeptDataRel
    );

    myDataSet.WriteXml("nonNestedXmlFile.xml");

    myDataSet.Relations["EmployeeDept"].Nested = true;

    myDataSet.WriteXml("nestedXmlFile.xml");
  }
}