Avatar billede Slettet bruger
15. august 2008 - 08:35 Der er 1 løsning

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
Avatar billede Slettet bruger
28. august 2008 - 21:05 #1
Fandt et fint eksempel som løste mit problem

http://www.vbforums.com/showthread.php?t=518067

lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester