Я пытаюсь вставить данные в две таблицы, связанные друг с другом через внешний ключ.Таблица dbo.Ansatte имеет первичный ключ с именем ansatID, а таблица dbo.Login_data имеет первичный ключ с именем brugerID и внешний ключ AnsatID, которые ссылаются на первичный ключ ansatID в таблице dbo.Ansatte.Первичный ключ в обеих таблицах вставляется постепенно, когда выполняется запрос. Проблема заключается в том, что после выполнения запроса внешний ключ AnsatID в таблице dbo.Login_data по-прежнему равен NULL, несмотря на тот факт, что внешний ключ AnsatID ссылается на первичный ключ с именем ansatID втаблица dbo.Ansatte.
Я попытался установить для параметра IDENTITY_INSERT значение ON (в MS SQL Server Studio Management Studio), но это не помогает, так как я все еще получаю сообщение об ошибке, что IDENTITY_INSERT установлен на OFF.
Вот код:
try
{
String ConnectionString = @"Data Source=.\SQLEXPRESS01;Initial Catalog=Vagtplan;Integrated Security=True";
SqlConnection myconnection = new SqlConnection(ConnectionString);
myconnection.Open();
SqlCommand AddWorkerCommand = myconnection.CreateCommand();
AddWorkerCommand.CommandText = "INSERT INTO dbo.Ansatte ([Navn], [Efternavn], [Adresse], [Postnummer], [Bynavn], [Email], [Mobilnr]) VALUES ( @Navn, @Efternavn, @Adresse, @Postnummer, @Bynavn, @Email, @Mobilnr)";
AddWorkerCommand.Parameters.AddWithValue("@Navn", textBox1.Text);
AddWorkerCommand.Parameters.AddWithValue("@Efternavn", textBox2.Text);
AddWorkerCommand.Parameters.AddWithValue("@Adresse", textBox3.Text);
AddWorkerCommand.Parameters.AddWithValue("@Postnummer", textBox4.Text);
AddWorkerCommand.Parameters.AddWithValue("@Bynavn", textBox5.Text);
AddWorkerCommand.Parameters.AddWithValue("@Email", textBox6.Text);
AddWorkerCommand.Parameters.AddWithValue("@Mobilnr", textBox7.Text);
AddWorkerCommand.ExecuteNonQuery();
SqlCommand AddUserCommand = myconnection.CreateCommand();
AddUserCommand.CommandText = "INSERT INTO dbo.Login_data ([Brugernavn], [Adgangskode], [Brugertype]) VALUES ( @Brugernavn, @Adgangskode, @Brugertype)";
AddUserCommand.Parameters.AddWithValue("@Brugernavn", textBox10.Text);
AddUserCommand.Parameters.AddWithValue("@Adgangskode", textBox9.Text);
AddUserCommand.Parameters.AddWithValue("@Brugertype", textBox8.Text);
AddUserCommand.ExecuteNonQuery();
myconnection.Close();
MessageBox.Show("Saved");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
Желаемым результатом является то, что внешний ключ AnsatID в таблице dbo.Login_data имеет то же значение, что и первичный ключ ansatID в таблице dbo.Ansatte.Фактический результат показан на картинке ниже.Фактический результат заключается в том, что внешний ключ AnsatID в таблице dbo.Login_data по-прежнему равен NULL после выполнения вышеуказанного кода, как показано на рисунке: