Hallo in die Runde,
ich habe das Dataset dts_Medienkopieren mit folgendem Aufbau:
Bei der Erstellung des Dataset habe ich mich an das Tutorial zu den Vier Views von @ErfinderDesRades gehalten.
die vier Views auf Video
Mein Problem ist nun weniger das Erstellen der Views vielmehr das Füllen der untergeordneten Datatable "Medien".
Die übergeordneten fülle ich wie folgt:
Gesamter Code (den Umweg über List werde ich noch entfernen):
Spoiler anzeigen
So weit ich es verstehe müsste ich für die untergeordnete Datatable ja wie folgt vorgehen:
Die übergebenen Variablen sind hier nur als Platzhalter zu sehen.
Die ersten drei Parameter sind kein Problem, da hier keine Beziehung zu einer anderen Datatable besteht. Bei den letzten drei jedoch schon. Hier muss ja die passende ID (Primärschlüssel) der übergeordneten Tabelle übergeben werden.
Dieser ist mir allerdings unbekannt. Ich kenne nur den Inhalt der zweiten Spalten der übergeordneten Tabellen.
Den einzigen Ansatz den ich nun hätte wäre über Linq (müsste ich mir noch aneignen) mit der bekannten Endung in der Datatable "Dateiendung" zu suchen um den richtigen Primärschlüssel dieser Tabelle in "Medien" eintragen zu können. Für die zwei weiteren Tabellen analog.
Klingt für mich nicht gerade elegant.
Ich hoffe meine Beschreibung ist halbwegs verständlich.
Vielen Dank für eure Unterstützung.
D@niel
ich habe das Dataset dts_Medienkopieren mit folgendem Aufbau:
Bei der Erstellung des Dataset habe ich mich an das Tutorial zu den Vier Views von @ErfinderDesRades gehalten.
die vier Views auf Video
Mein Problem ist nun weniger das Erstellen der Views vielmehr das Füllen der untergeordneten Datatable "Medien".
Die übergeordneten fülle ich wie folgt:
Gesamter Code (den Umweg über List werde ich noch entfernen):
VB.NET-Quellcode
- Sub MedienLadenDatenbank()
- Dim liMedienKopieren As New List(Of Mediendatei)
- Dim liDateiendungKopieren As New List(Of String)
- Dim liDateiartKopieren As New List(Of String)
- Dim liDatumKopieren As New List(Of Date)
- Dim MedienDateienKopieren() As String
- liMedienKopieren.Clear()
- liDateiendungKopieren.Clear()
- liDateiartKopieren.Clear()
- liDatumKopieren.Clear()
- QuellverzeichnisKopieren = Lbl_QuellverzeichnisKopieren.Text 'Übergibt das Quellverzeichnis vom UI an die Variable
- MedienDateienKopieren = Directory.GetFiles(QuellverzeichnisKopieren) 'Lädt die Dateien aus dem Verzeichnis in die Dateiliste
- For Each s As String In MedienDateienKopieren 'Durchläuft jede Datei in der Dateiliste
- liMedienKopieren.Add(New Mediendatei(s))
- Next
- For Each s As Mediendatei In liMedienKopieren
- If Not liDateiartKopieren.Contains(s.Dateityp) Then
- liDateiartKopieren.Add(s.Dateityp)
- End If
- If Not liDateiendungKopieren.Contains(s.Dateiendung) Then
- liDateiendungKopieren.Add(s.Dateiendung)
- End If
- If Not liDatumKopieren.Contains(s.Aufnahmedatum) Then
- liDatumKopieren.Add(s.Aufnahmedatum)
- End If
- Next
- liDateiartKopieren.Sort()
- liDateiendungKopieren.Sort()
- liDatumKopieren.Sort()
- With Dts_MedienKopieren
- .Clear()
- For Each s In liDateiartKopieren
- .Dateiart.AddDateiartRow(s)
- Next
- For Each s In liDateiendungKopieren
- .Dateiendung.AddDateiendungRow(s)
- Next
- For Each s In liDatumKopieren
- .Datum.AddDatumRow(s)
- Next
- End With
- End Sub
So weit ich es verstehe müsste ich für die untergeordnete Datatable ja wie folgt vorgehen:
Die übergebenen Variablen sind hier nur als Platzhalter zu sehen.
Die ersten drei Parameter sind kein Problem, da hier keine Beziehung zu einer anderen Datatable besteht. Bei den letzten drei jedoch schon. Hier muss ja die passende ID (Primärschlüssel) der übergeordneten Tabelle übergeben werden.
Dieser ist mir allerdings unbekannt. Ich kenne nur den Inhalt der zweiten Spalten der übergeordneten Tabellen.
Den einzigen Ansatz den ich nun hätte wäre über Linq (müsste ich mir noch aneignen) mit der bekannten Endung in der Datatable "Dateiendung" zu suchen um den richtigen Primärschlüssel dieser Tabelle in "Medien" eintragen zu können. Für die zwei weiteren Tabellen analog.
Klingt für mich nicht gerade elegant.
Ich hoffe meine Beschreibung ist halbwegs verständlich.
Vielen Dank für eure Unterstützung.
D@niel