2009-06-29 12 views
1

Ich habe 2 Tabellen in SQL-Server mit Primärschlüssel auf Identität festgelegt. Sie sind verwandt und arbeiten gut. Ich habe dann ein Formular in Vb 2008 erstellt und versucht, einige Werte in meine Datenbank die entsprechenden Primärschlüssel arbeiten, aber der Primärschlüssel in der Elterntabelle wird nicht in der Kindtabelle angezeigt. Ich habe eine Beziehung in Vb mit ado.net und Alle Details meiner Tabelle sind in der Datentabelle definiert. Zum Beispiel cust Tabellen (custid, Name, ..) Büchertisch (BOOKID, Bookname, .., custid)Fremdschlüssel Einschränkung in SQL

in vb meine Insert-Anweisung ist so etwas wie Insert in cust (Name) Werte (@name) Einfügen in Buch (Buchname) -Werte (@Buchname). Ich verwende die ID-Spalten nicht, da sie automatisch in der Datenbank (Tabellen) generiert werden. Meine Frage ist, wie bekomme ich die CustID in die Buch-Tabelle, wenn die Daten wieder in die Tabellen in meiner Datenbank gespeichert werden.

Bitte Beratung mit einem Beispiel als im nicht halb so gut wie euch.

Mit freundlichen Grüßen

Antwort

0

Sie müssen wissen, welche Kunden Sie mit dem Buch verknüpft werden soll, bevor das Buch einfügen. Wenn Sie nicht vorher wissen, können Sie nicht. Irgendwo in Ihrem Formular sollte es also einen Weg geben, einen Kunden auszuwählen. Wenn Sie ein Buch erstellen, greifen Sie die ID dieses Kunden und fügen sie zusammen mit den anderen Buchinformationen ein.

0

Sie sagen nicht, dass Sie eine Fremdschlüsseleinschränkung zwischen den beiden Tabellen erstellt haben!

Sie müssen:

  • Stellen Sie sicher, dass Sie einen expliziten Fremdschlüssel auf dem Büchertisch an einen Kunden in der CUST Tabelle Punkt erstellen.

  • Zuerst den Kunden einfügen.

  • Dann finden Sie heraus, was die automatisch generierte ID des Kunden war. Dieser Wert ist in @@ IDENTITY. Speichere es irgendwo z.B. @CUSTID.

  • Fügen Sie das Buch ein und geben Sie @CUSTID als Kunden-ID an.

Verwandte Themen