Как вставить запись в две реляционные таблицы, используя VB.NET и SQL
Привет, это сообщение об ошибке, которое я получаю.
Оператор INSERT конфликтовал с ограничением ключа FOREING "FK_Emplooyees_CredentialID", конфликт произошел в базе данных "MainHolder", таблице"dbo.Credentials", столбце "CredentialID".
Что я уже пробовал:
Я пытаюсь вставить запись сотрудника в две таблицы, запись делится на две части, общую информацию и учетные данные для входа. Я создал связь между тремя таблицами Employee, Profiles и Credential, таблица employee имеет имя столбца CredentialID, этот столбец содержит два внешних ключа от Profile и Credential. Вот объяснение кода:
InsertCredential()
Если BuscarID = False, То
SQL.AddParam("@ID", EmpID)
Еще
txtEmpID.Текст = m_IDTemp
SQL.AddParam("@ID", m_IDTemp)
Конец, Если
SQL.AddParam("@FName", FName)
Для SQL.AddParam("@Lname В", Lname В)
SQL.AddParam ("@UInitials", инициалы)
SQL.AddParam ("@Permission", разрешения)
SQL.AddParam ("@Email", UserEmails)
SQL.AddParam("@PhoneNumb", PhoneNumb)
SQL.AddParam("@Dept", Dept)
Для SQL.AddParam("@Должность", Должность)
Для SQL.AddParam("@Статус", Статус)
SQL.AddParam("@TransDates", dtpStartDate.Text)
SQL.AddParam("@FKID", m_LastIDEntered) 'ID от привратника или учетные данные
Если m_UserNames = String.Затем пусто SQL.AddParam("@TransMadeBy", имена пользователей) Еще в SQL.AddParam("@TransMadeBy", m_UserNames)
Для SQL.ExecQuery("вставить в сотрудников (empid, lname в, имени, инициалы, электронную почту, телефонный номер, информация, отдел, должность, разрешение, TransDate, TransMadeBy, CredentialsID)" &ампер; " ценности(@ИД @lname в, @имени, @UInitials, электронная почта, @PhoneNumb, @статус @отдел, @должность, @позволения, @TransDates, @TransMadeBy, @FKID);")
SQL.AddParam ("@Users", имена пользователей)
SQL.AddParam ("@PIN", PINS)
SQL.AddParam("@TransDate", dtpStartDate.Text)
Если m_UserNames = String.Затем пусто SQL.AddParam("@TransMadeBy", имена пользователей) Еще в SQL.AddParam("@TransMadeBy", m_UserNames)
Если Разрешения = "Полный Контроль" Или Разрешения = "Администратор", То
Для SQL.ExecQuery("вставить в профиль (пароль, PIN-код, TransDate, TransMadeBy)" &ампер; " ценности (пользователи@, @шпилька, @TransDate, @TransMadeBy);" &ампер; "выберите функции scope_identity()")
Еще
Для SQL.ExecQuery("включить в учетные данные (Имя пользователя, PIN-код, TrnasDate, TransMadeBy)" &ампер; " ценности (пользователи@, @шпилька, @TransDates, @TransMadeBy);" + "выберите функции scope_identity()")