Autor Beitrag
buyden
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 13.01.09 22:38 
Hi,
ich habe ein typisiertes Dataset für eine MySQL-Datenbank mit ca. 15 verknüpften Tabellen. Die Tabelle Produkt beinhaltet eine ganze Reihe von Fremdschlüsseln zu anderen Tabellen. Jede Tabelle hat eine eigene BindingSource. Jetzt kann ich die Tabellen auf meinem Form mittels Comboboxen verknüpfen, damit bei den Fremdschlüsselfeldern nicht nur die ID angezeigt wird. Es gibt allerdings ein paar Felder, die nur zum Lesen gedacht sind und nicht in einer Combobox sondern einem Label dargestellt werden sollen. Damit verliere ich ja aber auch die Verknüpfung zur BindingSource der übergeordneten Tabelle. Man könnte wohl auch die BindingSources direkt verknüpfen, indem ich als DataSource die BindingSource der übergeordneten Tabelle angebe. Wenn es aber mehrere übergeordnete Tabellen gibt funktioniert das auch nicht mehr.
Wie kann ich ein z.B. ein Label so binden, das ich die Bezeichnung der übergeordneten Tabelle des Datensatzes mit er ID des Fremdschlüssels der Untergeordneten Tabelle anzeigen kann?
Ich hoffe mal das war nicht zu verwirrend :-)
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mi 14.01.09 11:02 
Hallo und :welcome:

Ich bin mir nicht sicher (es ist schon lange her, dass ich es in dieser Weise mal benutzt hatte): Ich glaube, Du musst anstelle der DataTable die betreffende DataRelation als DataSource benutzen. Aber was als PropertyName für DataBindings.Add() zu verwenden ist :?:

Gruß Jürgen
buyden Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 14.01.09 20:10 
Hallo Jürgen,

Um mal mit Beispielen arbeiten zu können:
Ich habe eine Tabelle "Produktblatt" mit Fremdschlüsseln auf die Tabellen "Platine", "Bearbeitung", "Variante"...
"Platine" hat wiederum einen Fremdschlüssel zur Tabelle "Kunde".
Jetzt habe ich schon ein neues Produktblatt angelegt und eine Platine angegeben (Insert-Anweisung mit ExecuteNonQuery).
Die anderen Daten sollen in einem Formular ergänzt werden, in dem die Platinenbezeichnung und der dazugehörige Kundenname in Labels angezeigt werden soll, damit diese nicht verändert werden können (sieht auch besser aus). Die anderen Felder kann ich ja mit ComboBoxen an die übergeordneten Tabellen binden.
Es gibt für jede Tabelle im Dataset eine BindingSource. Wenn ich jetzt für die ProduktblattBindingSource als DataSource die Relation in der PlatineBindingSource angebe, was mache ich dann mit den Relations zu den anderen Tabellen? Ich kann ja nur eine DataSource für meine ProduktblattBindingSource angeben.

Steh ich da jetzt auf der Leitung?


user profile iconJüTho hat folgendes geschrieben Zum zitierten Posting springen:
es ist schon lange her, dass ich es in dieser Weise mal benutzt hatte

Was habe ich denn sonst noch für Möglichkeiten?