C# .NET – Дефиниција Master – Detail везе две табеле

Скраћена веза: https://pedja.supurovic.net/veza/5353

Подешавање приказа 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. […]
[ ... види цео чланак ... ]

BAT скрипт за брзи бекап

Скраћена веза: https://pedja.supurovic.net/veza/5259

Прављење резервних копија кода на коме радим ми је увек правило главобољу. Ма колико да је то неопходно, редовно ми се дешава да направим копију у неком битном моменту.

Након последње компликације коју сам имао зато што нисам имао одговарајућу копију, одлучио сам да се тим питањем мало озбиљније позабавим. Пробао сам неколико програма за ту намену, и углавном закључио да то мени не ради посао.

Главни проблем је што треба да се сетим да покренем поступак копирања, а затим и да то заиста и учиним, покретањем одговарајућег програма.

Пошто, додуше мало необично за данашње време, највише времена и даље радим у командном прозору (да, на Windows-у) , чак и када радим на веб пројектима, смислио сам прилично брзо и ефикасно решење. […]
[ ... види цео чланак ... ]

C# .NET – ComboBox Lookup from Detail Table

Скраћена веза: https://pedja.supurovic.net/veza/5252

Ово морам да забележим, јер ми је невероватно да сам потрошио сате и сате да бих ископао како да направим тако просту и баналну ствар.

Имате табеле MasterTable и DetailTable. Табела MasterTable има поље detail_id преко кога је повезано са табелом DetailTable. Табела DetailTable има само два поља: detail_id и description.

Хоћете на масци да имате ComboBox који ће приказати листу вредности из табеле DetailTable тако што ће приказати вредности поља description а када се изабере одређена вредност у MasterTable.detail_id уписати вредност поља DetailTable.detail_id.

Ако кренете интуитивно сигурно нећете нигде стићи. Документација на Мајкрософт сајту је бедна и неупотребљива, а ако покушате да на Интернету нађете неки пример како ово подесити наићи ћете само на половичне примере који не раде. […]
[ ... види цео чланак ... ]