ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ADO.NET Relation 관련 예제
    .NET/ADO.NET 2008. 11. 6. 15:22
    반응형
    DS.Relation.Add(

    7가지의 오버로딩



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

    namespace ConsoleApplication4
    {
    class Program
    {
    static void Main(string[] args)
    {
    //DataSet 생성
    DataSet ds = new DataSet("publication");

    //DataTable 생성 
    DataTable publicTable = new DataTable("publics");
    publicTable.Columns.Add(new DataColumn("publicID", typeof(int)));
    publicTable.Columns.Add(new DataColumn("Name", typeof(string)));

    //테이블에 제약조건 설정 
    publicTable.Constraints.Add(
    new UniqueConstraint("PK_Publics", publicTable.Columns[0]));
    //기본키 설정 
    publicTable.PrimaryKey = new DataColumn[] { publicTable.Columns[0] };

    DataTable peopleTable = new DataTable("People");
    peopleTable.Columns.Add(new DataColumn("PeopleID", typeof(int)));
    peopleTable.Columns.Add(new DataColumn("Name", typeof(string)));
    peopleTable.Columns.Add(new DataColumn("publicID", typeof(int)));
    peopleTable.Constraints.Add(
    new UniqueConstraint("PK_People", peopleTable.Columns[0]));
    peopleTable.PrimaryKey = new DataColumn[] { peopleTable.Columns[0] };

    //DataSet 에 DataTable 추가 
    ds.Tables.Add(publicTable);
    ds.Tables.Add(peopleTable); 

    //관계설정

    ds.Relations.Add("Peoples", ds.Tables["publics"].Columns["publicID"],

    ds.Tables["People"].Columns["publicID"]); 
         
    //DataTable에 자료 입력
    DataRow publicRow = ds.Tables["publics"].NewRow();
    publicRow["publicID"] =1 ;
    publicRow["Name"] = "Seoul";
    ds.Tables["publics"].Rows.Add(publicRow);

    publicRow = ds.Tables["publics"].NewRow();
    publicRow["publicID"] = 2;
    publicRow["Name"] = "Pusan";
    ds.Tables["publics"].Rows.Add(publicRow);


    DataRow peopleRow = ds.Tables["People"].NewRow();
    peopleRow["PeopleID"] = 1;
    peopleRow["Name"] = "Namil Park";
    peopleRow["publicID"] = 1;
    ds.Tables["People"].Rows.Add(peopleRow);

    peopleRow = ds.Tables["People"].NewRow ( ) ; 
    peopleRow["PeopleID" ] = 2 ; 
    peopleRow["Name"] = "JiSun" ; 
    peopleRow["publicID"] = 1
    ds.Tables["People"].Rows.Add ( peopleRow ) ; 
    peopleRow = ds.Tables["People"].NewRow ( ) ; 
    peopleRow["PeopleID" ] = 3 ; 
    peopleRow["Name"] = "Kate" ; 
    peopleRow["publicID"] = 1
    ds.Tables["People"].Rows.Add ( peopleRow ) ;

    peopleRow = ds.Tables["People"].NewRow();
    peopleRow["PeopleID"] = 4;
    peopleRow["Name"] = "Kwangsik";
    peopleRow["publicID"] = 2;
    ds.Tables["People"].Rows.Add(peopleRow);

    peopleRow = ds.Tables["People"].NewRow();
    peopleRow["PeopleID"] = 5;
    peopleRow["Name"] = "chonje";
    peopleRow["publicID"] = 2;
    ds.Tables["People"].Rows.Add(peopleRow);


    foreach (DataRow publisher in ds.Tables["publics"].Rows)
    {
    DataRow[] subRelay = publisher.GetChildRows("Peoples");
    int pepleCount = subRelay.Length;
    Console.WriteLine("{0} 출신 : {1} 명 ",publisher["Name"], pepleCount);
    foreach (DataRow thePeople in subRelay)
    Console.WriteLine("성명 : {0}", thePeople["Name"]);
    }

    foreach (DataRow people in ds.Tables["People"].Rows)
    {
    DataRow[] parents = people.GetParentRows("Peoples");
    foreach (DataRow publisher in parents)
    Console.WriteLine("이름 : {0} ,{1}의 출신" ,people["Name"],publisher["Name"]);
    }
    }
    }
    }




    반응형

    댓글

Designed by Tistory.