Подешавање приказа master/detail везу две табеле у .NET није баш очигледно некоме ко је навикао на неку другу платформу. Зато, ево кратког примера како то подесити :
//
//
// kreiraj dataset
ds = new DataSet();
//
//
// kreiraj master tabelu
DataTable dtMaster = new DataTable();
dtMaster.Columns.Add ("id_master", typeof (string));
dtMaster.Columns.Add ("description", typeof (string));
//
//
// napuni je podacima
dtMaster.Rows.Add ("1", "prvi");
dtMaster.Rows.Add ("2", "drugi");
dtMaster.Rows.Add ("3", "treci");
dtMaster.Rows.Add ("4", "cetvrti");
//
//
// podesi primarni kljuc
DataColumn[] MasterPrimaryKeyColumns = new DataColumn[1];
MasterPrimaryKeyColumns[0] = dtMaster.Columns["id_master"];
dtMaster.PrimaryKey = MasterPrimaryKeyColumns;
//
//
// dodaj tabelu u DataSet
ds.Tables.Add (dtMaster);
//
//
// kreiraj detail tabelu
DataTable dtDetail = new DataTable();
dtDetail.Columns.Add("id_detail", typeof(string));
dtDetail.Columns.Add("description", typeof(string));
dtDetail.Columns.Add("id_master", typeof(string));
//
//
// napuni je podacima
dtDetail.Rows.Add("1", "1-1", "1");
dtDetail.Rows.Add("2", "1-2", "1");
dtDetail.Rows.Add("3", "2-3", "2");
dtDetail.Rows.Add("4", "3-4", "3");
dtDetail.Rows.Add("5", "3-5", "3");
dtDetail.Rows.Add("6", "3-6", "3");
dtDetail.Rows.Add("7", "3-7", "3");
dtDetail.Rows.Add("8", "4-8", "4");
dtDetail.Rows.Add("9", "4-9", "4");
dtDetail.Rows.Add("10", "4-10", "4");
//
//
// podesi primarni kljuc
DataColumn[] DetailPrimaryKeyColumns = new DataColumn[1];
DetailPrimaryKeyColumns[0] = dtMaster.Columns["id_detail"];
dtMaster.PrimaryKey = DetailPrimaryKeyColumns;
//
//
// dodaj tabelu u DataSet
ds.Tables.Add(dtDetail);
//
//
// podesi relaciju izmedju tabela i nju dodaj u DataSet
DataRelation drMasterDetail = new DataRelation("fk_master_detail",
dtMaster.Columns["id_master"],
dtDetail.Columns["id_master"]);
ds.Relations.Add(drMasterDetail);
//
//
// kreiraj BindingSource za Master tabelu
BindingSource bsMaster = new BindingSource();
bsMaster.DataSource = dtMaster;
//
//
// BindingSource za Detail tabelu se vezuje za
// BindingSource Master tabele, a kao DataMebmer
// se navodi naziv relacije Master/Detail
BindingSource bsDetail = new BindingSource();
bsDetail.DataSource = bsMaster;
bsDetail.DataMember = "fk_master_detail";
//
//
// povezi BindingSource za odgovarajuce gridove na formi
dgMaster.DataSource = bsMaster;
dgDetail.DataSource = bsDetail;
Да бисте испробали овај код, уметните га у конструктор форме или у Load() догађај а на форму поставите два грида dgMaster и dgDetail.
У овом примеру је намерно дат код који сам прави и пуни табеле да бисте могли да га испробате без потребе да користите неку базу. У програмима ћете углавном податке у табеле учитавати из неке базе. Уместо ручног уметања редова као у овом примеру, ви ћете табелу напунити податке преко DataAdapter-а.