Databinding, relaterede comboboxe
Hej Eksperter,På forhånd tak til de(n) som vil tage et kik på denne kode og komme med en kommentar.
jeg forsøger at få nedenstående kode til at virke efter denne hensigt:
1: Brugeren vælger en varegruppe fra cbxVareGrupper
2: cbxUnderVareGrupper fyldes med data fra tabellen hvor GruppeId(UnderVareGrupper) == Id(VareGrupper)
3: Brugeren vælger en Undergruppe fra cbxUnderVareGrupper
4: cbxVarer fyldes med data fra tabellen hvor UnderGruppeId(Varer) == Id(UnderVareGrupper)
Databasen har følgende struktur:
VareGrupper
-Id
-Navn
UnderVareGrupper
-Id
-GruppeId
-Navn
Varer
-Id
-UnderGruppeId
-Navn
Relation Id(VareGrupper) -> GruppeId(UnderVareGrupper)
Relation Id(UnderVareGrupper) -> Varer(UnderGruppeId)
--------------------Kode
// Lav DataSet object
ds = new DataSet("Grupper_Vare");
#region TableMappings
//Oprettelse af Tablemapping "VareGrupper"
command.CommandText = "SELECT * FROM VareGrupper";
OleDbDataAdapter da1 = new OleDbDataAdapter(command);
da1.TableMappings.Add("Table", "VareGrupper");
da1.Fill(ds);
//Oprettelse af Tablemapping "UnderVareGrupper"
command.CommandText = "SELECT * FROM UnderVareGrupper";
OleDbDataAdapter da2 = new OleDbDataAdapter(command);
da2.TableMappings.Add("Table", "UnderVareGrupper");
da2.Fill(ds);
//Oprettelse af Tablemapping "Varer"
command.CommandText = "SELECT * FROM Varer";
OleDbDataAdapter da3 = new OleDbDataAdapter(command);
da3.TableMappings.Add("Table", "Varer");
da3.Fill(ds);
#endregion
#region Relationer
// Lav relation: "RelVgrpUvgrp"
// mellem VarerGrupper ---< UnderVarerGrupper
DataColumn colMaster1 = ds.Tables["VareGrupper"].Columns["Id"];
DataColumn colDetail1 = ds.Tables["UnderVareGrupper"].Columns["GruppeId"];
DataRelation RelVgrpUvgrp = new DataRelation("RelVgrpUvgrp", colMaster1, colDetail1);
ds.Relations.Add(RelVgrpUvgrp);
// Lav relation: "RelUndergrpVarer"
// mellem UnderVareGrupper ---< Varer
DataColumn colMaster2 = ds.Tables["UnderVareGrupper"].Columns["Id"];
DataColumn colDetail2 = ds.Tables["Varer"].Columns["UnderGruppeId"];
DataRelation RelUndergrpVarer = new DataRelation("RelUndergrpVarer", colMaster2, colDetail2);
ds.Relations.Add(RelUndergrpVarer);
#endregion
dsView = ds.DefaultViewManager;
#region Databinds
// Bind VareGrupper Combobox
cbxVareGrupper.DataSource = dsView;
cbxVareGrupper.DisplayMember = "VareGrupper.Navn";
cbxVareGrupper.ValueMember = "VareGrupper.Id";
// Bind UndervareGrupper Combobox
cbxUnderVareGrupper.DataSource = dsView;
cbxUnderVareGrupper.DisplayMember = "UnderVareGrupper.Navn";
cbxUnderVareGrupper.ValueMember = "VareGrupper.RelVgrpUvgrp";
// Bind Varer Combobox
cbxVarer.DataSource = dsView;
cbxVarer.DisplayMember = "Varer.Navn";
cbxVarer.ValueMember = "UnderVareGrupper.RelUndergrpVarer";
#endregion