2009-06-29 13 views
1

J'ai 2 tables dans le serveur SQL avec les clés primaires définies à l'identité. Ils sont liés et fonctionnent bien. J'ai ensuite créé un formulaire en vb 2008 et j'ai essayé d'insérer des valeurs dans ma base de données. Les clés primaires respectives fonctionnent mais la clé primaire de la table parent n'apparaît pas dans la table enfant.J'ai créé une relation en vb en utilisant ado.net et tous les détails de ma table sont définis dans la table de données. Par exemple tables cust (custid, nom, ..) table de livre (bookid, bookname, .., custid)contrainte de clé étrangère dans sql

valeurs vb ma déclaration d'insertion est quelque chose comme Insérer dans Cust (nom) (@name) insérer dans les valeurs book (bookname) (@bookname). Je n'inclut pas les colonnes id car elles génèrent automatiquement dans la base de données (tables). Ma question est comment puis-je insérer le custid dans la table du livre lorsque les données sont stockées dans les tavles dans ma base de données.

S'il vous plaît des conseils avec un exemple que je ne suis pas moitié moins bon que vous les gars.

Cordialement

Répondre

0

Vous devez savoir quel client que vous souhaitez associer avec le livre avant d'insérer le livre. Si vous ne savez pas avant, vous ne pouvez pas. Donc, quelque part dans votre formulaire, il devrait y avoir un moyen de sélectionner un client. Ensuite, lorsque vous créez un livre, vous saisissez l'ID de ce client et l'insérez avec les autres informations du livre.

0

Vous ne dites pas que vous avez créé une contrainte de clé étrangère entre les deux tables!

Vous devez:

  • Assurez-vous que vous créez un explicite clé étrangère sur la table BOOK pour pointer vers un client dans la table CUST.

  • Insérez d'abord le client.

  • Ensuite, découvrez ce que l'ID généré automatiquement par le client. Cette valeur est dans @@ IDENTITY. Stockez-le quelque part, par exemple @CUSTID.

  • Insérez le livre en spécifiant @CUSTID comme ID du client.

Questions connexes