DataRow.GetParentRow(relations) - Wie geb ich die Relations an ???

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von DianonForce.

    DataRow.GetParentRow(relations) - Wie geb ich die Relations an ???

    Moin,

    ich hab in einem Dataset 2 Tabellen, nennen wir sie mal Tabelle A und Tabelle B. Tabelle A hat eine 1:n Relation zu Tabelle B. Nun will ich aus einer gegebenen DataRow aus Tabelle B einen Wert aus der ParentTabelRow abfragen.

    Auf die ChildRows von Tabelle A kann ich mit row.GetTabelleARows zugreifen, das weis ich schon. Wie mache ich das aber umgekehrt?
    Es scheint keine benamte GetTabelleARow Methode zu geben, was ich gefunden habe, ist GetParentRow, dazu muss ich aber eine Relation angeben. Klar nun kann ich einfach "FK_TabelleA_TabelleA" eintragen, aber welchen Sinn hat das wenn ich über all sonst in einem Typ.DataSet ohne solche Aufrufe klar komme, sie hier dann doch zu benutzen?
    Machen wir es mal konkreter. Du hast ne Tabelle Companies und ne Tabelle Cars.

    Du hast dann ein paar Firmen und Automarken hinzugefügt.
    Um jetzt von einem bestimmten Auto auf die Firma zuzugreifen, nutzt du die konkret über das Auto verfügbare CompaniesRow, hier für das letzte Auto in der Tabelle.

    VB.NET-Quellcode

    1. Dim CompanyOfLastCar = Tds.Cars.Last.CompaniesRow
    Es gibt also keine Funktion namens GetCompaniesRow, sondern es ist eine Property, die einfach nur CompaniesRow heißt.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.

    VaporiZed schrieb:

    Tabelle Companies und ne Tabelle Cars
    Man sollte die Benamung der Tabellen in der Einzahl halten. Das unterstützt dann die automatische vertändliche Benamung des Datasetgenerators…

    VB.NET-Quellcode

    1. Private Sub GetCompany_Click(sender As Object, e As EventArgs) Handles btnGetCompany.Click
    2. lblCompany.Text = DirectCast(DirectCast(CarBindingSource.Current, DataRowView).Row, CarRow).CompanyRow.NameCompany
    3. End Sub
    Hier wird beim aktuell ausgewählten Auto sein Hersteller ausgegeben...