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