vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ADO.NET / Datenbanken
Master- Detailtabellen - Wie Daten einfügen? 
Autor: MikeJ
Datum: 30.08.10 14:44

Hallo zusammen

ich sitze seit 3 Tagen vor einem Problem und drehe mich irgendwie nur im Kreis:

Ich habe eine Datenbank mir folgenden Tabellen/Spalten:
Master - ID, ...
Detail1 - ID, ID_Master, ...
Detail2 - ID, ID_Master, ...
Es Handelt sich dabei um eine Master-Tabelle die pro Eintrag mehrere Details in den beiden Detail-Tabellen haben kann.

Zu beginn lade ich die 3 Tabellen in ein DataSet und stelle sie in Relation zueinander:
ds.Relations.Add("MasterDetail1", ds.Tables("Master").Columns("ID"), ds.Tables( _
  "Detail1").Columns("ID_Master"))
ds.Relations.Add("MasterDetail2", ds.Tables("Master").Columns("ID"), ds.Tables( _
"Detail2").Columns("ID_Master"))
Bei der Eingabe eines neuen Datensatzes stehen zuerst die Detail-Informationen fest, bevor der Master-Datensatz angelegt wird. Daher schreibe ich neue Informationen mit den ID´s -1 in das Dataset.

Beim Update führe ich die Aktualisierung aller 3 Tabellen als Transaktion durch, damit nur alle 3 Tabellen oder keine in die Datenbank eingetragen wird.

Genau hier kommt es nun zum Fehler: Beim Eintrag der Master-Tabelle ändert sich die ID des Datensatzes von -1 nach ?; beim Übernehmen der Detailtabellen besteht dann das Problem dass hier versucht wird Einträge mit der ID_Master von -1 vorzunehmen, die es ja nicht gibt.

Ich dachte eigentlich dieses Problem würde ich durch die Relation der 3 Tabellen zueinander umgehen?
Ich habe es jetzt so gelöst, dass ich zuerst nur den Master-Datensatz übertrage, diesen danach wieder auslese um an die neue ID zu kommen. Dann ersetze ich die ID_Master der Detail-Tabellen von -1 mit dem neu eingelesenen Wert. Geht beim ÜBertragen einer Detail-Tabelle etwas schief lösche ich danach den Eintrag in der Master-Tabelle wieder :-/


Aber das ist doch Müll - ich verstehe nicht wie man das das "richtig" macht?!
Wäre für eine Erklärung sehr dankbar.

Viele Grüße
Mike
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Master- Detailtabellen - Wie Daten einfügen?1.357MikeJ30.08.10 14:44
Re: Master- Detailtabellen - Wie Daten einfügen?784MikeJ30.08.10 16:18

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel