2009-06-29 4 views
1

У меня есть 2 таблицы в sql-сервере с первичными ключами, установленными для идентификации. Они связаны и работают нормально. Затем я создал форму в vb 2008 и попытался вставить некоторые значения в мою базу данных, соответствующие первичные ключи работают, но первичный ключ в родительской таблице не будет отображаться в дочерней таблице. Я создал отношения в vb с помощью ado.net и все детали моей таблицы определены в таблице данных. Для примера П таблиц (CustID, имя, ..) книги стола (BookID, BookName, .., CustID)ограничение внешнего ключа в sql

в VB моей вставки заявление что-то вроде вставки в Касты (имя) значение (@name) вставить в книгу (имя книги) значения (@ bookname). Я не включаю столбцы id, поскольку они автоматически генерируются в базе данных (таблицы). Мой вопрос в том, как я могу вставить custid в таблицу книг, когда данные хранятся обратно в tavles в моей базе данных.

Просьба проконсультироваться с примером, как я не так хорош, как вы, ребята.

С наилучшими пожеланиями

ответ

0

Вы должны знать, какой клиент вы хотите связать с книгой, прежде чем вставить книгу. Если вы не знаете заранее, вы не можете. Поэтому где-то в вашей форме должен быть способ выбрать клиента. Затем, когда вы создаете книгу, вы получаете идентификатор клиента и вставляете его вместе с другой информацией о книге.

0

Вы фактически не говорите, что создали ограничение внешнего ключа между двумя таблицами!

Вам нужно:

  • Убедитесь, что вы создаете явный внешний ключ таблицы BOOK, чтобы указать клиенту в таблице ПАМ.

  • Первый вставить клиент.

  • Затем выясните, что такое автоматический идентификатор клиента. Это значение указано в @@ IDENTITY. Храните его где-то, например. @CUSTID.

  • Вставьте книгу, указав @CUSTID в качестве идентификатора клиента.

Смежные вопросы