Announcement

Collapse
No announcement yet.

Parent & Childrelation als gemeinsame Datensource binden - Nur zur Info

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Parent & Childrelation als gemeinsame Datensource binden - Nur zur Info

    Ich hab eine XML Datei in ein Dataset importiert die Auswahl der Datei wird über einen Dateibrowser ermöglicht. Der Pfad und Dateiname wird nun in einer Variable "Path" gespeichert und weiter verwendet.

    'Dateibrowser welcher den Dateinamen und Pfad zurückliefert
    Dim dlgFileOpen As New OpenFileDialog()
    dlgFileOpen.ShowDialog()
    Dim path As String = dlgFileOpen.FileName

    Dim ds As New DataSet
    ' use filestream class to read xml content.
    Dim streamRead As New System.IO.FileStream("" & path & "", _
    System.IO.FileMode.Open)

    'Dataset can read content from FileStream.
    ds.ReadXml(streamRead)

    ' Close FileStream object
    streamRead.Close()

    Im Dataset wurden automatisch 2 Tabellen angelegt eine Parent und eine Child nun war mein Problem, das ich in Abhängigkeit der Auswahl in einer Combobox sowohl die Felder in meinem Dialog ändern wollte, die auf Daten der Parenttabelle zugreifen als auch die Felder die auf die dazugehörigen Einträge aus der Childtabelle zugreifen.

    Dank der Unterstützung dieses Forums ließ sich dieses Problem sehr elegant durch den Befehl "Bindingsource" realisieren.

    ' Eine BindingSource für die Parenttabelle Manufacturer
    Dim bsManufacturer As New BindingSource()
    bsManufacturer.DataSource = ds.Tables("Manufacturer")

    ' Eine BindingSource auf den ForeignKey zwischen Manufacturer und Country
    Dim bsCountry As New BindingSource()
    bsCountry.DataMember = "Manufacturer_Country"
    bsCountry.DataSource = bsManufacturer

    ' Bind data to your control.

    ComboBox1.DataSource = bsManufacturer
    ComboBox1.DisplayMember = "Customer-ID"

    'Datensatz aus der Parenttabelle
    TextBox13.DataBindings.Clear()
    TextBox13.DataBindings.Add("Text", bsManufacturer, "Customer-ID")

    'dazugehöriger Datensatz aus der Childtabelle
    TextBox12.DataBindings.Clear()
    TextBox12.DataBindings.Add("Text", bsCountry, "ID")

    Sollte jemand ein ähnliches Problem haben hoffe ich ihm mit diesem Beitrag einwenig weiterhelfen zu können.

    Großes Lob an meine geduldigen Supporter aus diesem Forum

  • #2
    @Juwendtus: Hast du deinen Beitrag mal gelesen - ich nicht denn ohne Formatierung ist das sehr schwierig und darum kann ich auch nicht helfen.


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment

    Working...
    X