Hallo,
ich bin dabei ein einfaches Bücherverwaltungsprogramm zu programmieren. Ich habe dazu eine relationale Datenbank (BookLibrary.sdf) mit folgenden Tabellen angelegt (um Redundanz zu vermeiden):
Editor - Master
EditorID (PK, int, autoincr.)
Editor (string)
Publisher - Master
PublisherID (PK, int, autoincr.)
Publisher (string)
Book - Detail
BookID (PK, int, autoincr.)
Title (string)
EditorID (FK, int)
PublisherID (FK, int)
Year (string)
ISBN (string)
Da ich nun 2 Master-Tabellen habe, die in Relation zur Detail-Tabelle stehen, wusste ich nicht genau, welche Detail-Tabelle ich für das Generieren des DataGridViews verwenden soll. Im BookLibraryDataSet ist nämlich sowohl unter Editor als auch
unter Publisher eine Book-Tabelle zu finden. Ich habe mich dann letztendlich für die Book-Tabelle entschieden, die unter Editor zu finden war. Wahrscheinlich ist es egal, welche der beiden Book-Tabellen man nimmt. Dann habe ich zwei LookupDataSets und
die dazugehörigen BindingSources erzeugt, eins für die Editor-Tabelle und eins für die Publisher-Tabelle. Diese habe ich für die ComboBox Spalten des Book-DGV benötigt. Anschließend habe ich noch 2 ToolStripButtons definiert,
die neue Formulare öffnen, um Editoren bzw. Publisher eintragen zu können.
Nun habe ich die Anwendung gestartet, einige Editoren und Publisher eingetragen und gespeichert und zuletzt ein Buch (Titel, Year und ISBN eingetragen und Editor sowie Publisher aus den ComboBoxen ausgewählt) eingegeben. Als ich die Daten speichern
wollte, kam folgende Fehlermeldung:
"ForeignKeyConstraint FK_Book_Publisher requires the child key values (1) to exist in the parent table."
Der Fehler tritt auf in der Zeile
Me.BookBindingSource.EndEdit()
Die Werte existieren doch in der Datenbank in der Master-Tabelle Publisher, sonst hätte ich sie in der ComboBox nicht auswählen können, zumal ich separate LookupDataSets habe. Hat jemand eine Idee, woran es liegen könnte?
Gruß LittleBlueBird