master-Detail-Subdetail

05/04/2008 - 14:30 von Gutelade | Report spam
Frank Schneider [wo àndert man eigentlich den Display-Namen?]:

Ich habe eine Mastertabelle, die über eine Relation mit einer zweiten
Tabelle verknüpft ist. Mit Hilfe von BindingSources wird der Inhalt der
DetailTabelle immer schön mit der gerade ausgewàhlten Spalte des zugehörigen
master-DataGridViews aktualisiert.
So weit-So schön.
Hànge ich nun an die Detail-Tabelle über eine weitere Relation eine
Sub-Detail-Tabelle an, wird das zugehörige Subdetail-Datagridview bei
Änderung der Master-Tabelle zusammen mit dem Detail-Datagridview nicht
aktualisiert.

Hier die (wahrscheinlich) relevante Codefragmente (ds = DataSet, eh klar ;-))

this.kundeBS.DataSource = this.ds;
this.kundeBS.DataMember = "Kunden";
DataRelation verTypKDRelation = new DataRelation("KundenTypen",

this.ds.Tables["Kunden"].Columns["KD_LFD_NR"],

this.ds.Tables["VerTypen"].Columns["V_KD_LFD_NR"]);
this.ds.Relations.Add(verTypKDRelation);
this.verTypBS.DataSource = this.kundeBS;
this.verTypBS.DataMember = "KundenTypen";
this.typBS.DataSource = this.ds;
this.typBS.DataMember = "VerTypen";
DataRelation typVerRelation = new DataRelation("TypenVertrag",

this.ds.Tables["VerTypen"].Columns["V_LFD_NR"],

this.ds.Tables["Vertraege"].Columns["V_LFD_NR"]);
this.ds.Relations.Add(typVerRelation);
this.vertragBS.DataSource = this.typBS;
this.vertragBS.DataMember = "TypenVertrag";

this.dataGridKunden.DataSource = this.kundeBS;
this.dataGridTypen.DataSource = this.verTypBS;
this.dataGridVertraege.DataSource = this.vertragBS;

Vielleicht programmiere ich auch gerade schon ein wenig zu lang und sehe den
Fehler nicht.
Ich freue mich über jeden Hinweis!
Frank Schneider
 

Lesen sie die antworten

#1 Gutelade
07/04/2008 - 21:36 | Warnen spam
Frank Schneider:
Habde den Fehler selbst gefunden, ich poste das mal zu jedermann(-frau)
Verwendung:

DataRelation verTypKDRelation = new DataRelation("KundenTypen",

this.ds.Tables["Kunden"].Columns["KD_LFD_NR"],

this.ds.Tables["VerTypen"].Columns["V_KD_LFD_NR"]);
this.ds.Relations.Add(verTypKDRelation);
this.verTypBS.DataSource = this.kundeBS;
this.verTypBS.DataMember = "KundenTypen";
DataRelation typVerRelation = new DataRelation("TypenVertrag",

this.ds.Tables["VerTypen"].Columns["V_LFD_NR"],

this.ds.Tables["Vertraege"].Columns["V_LFD_NR"]);
this.ds.Relations.Add(typVerRelation);
this.vertragBS.DataSource = this.verTypBS; !!!!!Hier war die
falsche Quelle!
this.vertragBS.DataMember = "TypenVertrag";

"Gutelade" wrote:

Frank Schneider [wo àndert man eigentlich den Display-Namen?]:

Ich habe eine Mastertabelle, die über eine Relation mit einer zweiten
Tabelle verknüpft ist. Mit Hilfe von BindingSources wird der Inhalt der
DetailTabelle immer schön mit der gerade ausgewàhlten Spalte des zugehörigen
master-DataGridViews aktualisiert.
So weit-So schön.
Hànge ich nun an die Detail-Tabelle über eine weitere Relation eine
Sub-Detail-Tabelle an, wird das zugehörige Subdetail-Datagridview bei
Änderung der Master-Tabelle zusammen mit dem Detail-Datagridview nicht
aktualisiert.

Hier die (wahrscheinlich) relevante Codefragmente (ds = DataSet, eh klar ;-))

this.kundeBS.DataSource = this.ds;
this.kundeBS.DataMember = "Kunden";
DataRelation verTypKDRelation = new DataRelation("KundenTypen",

this.ds.Tables["Kunden"].Columns["KD_LFD_NR"],

this.ds.Tables["VerTypen"].Columns["V_KD_LFD_NR"]);
this.ds.Relations.Add(verTypKDRelation);
this.verTypBS.DataSource = this.kundeBS;
this.verTypBS.DataMember = "KundenTypen";
this.typBS.DataSource = this.ds;
this.typBS.DataMember = "VerTypen";
DataRelation typVerRelation = new DataRelation("TypenVertrag",

this.ds.Tables["VerTypen"].Columns["V_LFD_NR"],

this.ds.Tables["Vertraege"].Columns["V_LFD_NR"]);
this.ds.Relations.Add(typVerRelation);
this.vertragBS.DataSource = this.typBS;
this.vertragBS.DataMember = "TypenVertrag";

this.dataGridKunden.DataSource = this.kundeBS;
this.dataGridTypen.DataSource = this.verTypBS;
this.dataGridVertraege.DataSource = this.vertragBS;

Vielleicht programmiere ich auch gerade schon ein wenig zu lang und sehe den
Fehler nicht.
Ich freue mich über jeden Hinweis!
Frank Schneider

Ähnliche fragen