Witam
Mam do napisania aplikację, która będzie obsługiwać bazę danych stworzoną wcześniej przeze mnie (dodawanie rekordów, usuwanie, edycja, wyświetlanie). Schemat bazy w załączniku. Aplikację mam już w dużym stopniu napisaną (obsługuję 2 z 4 tabel) ale mam problem z tabelami, w których są klucze obce. Aplikację pisze w oparciu o ten poradnik:
; Według tego poradnika, mój kod na dodawanie rekordu powinien wyglądać tak:
private void button1_Click(object sender, EventArgs e)
{
SqlConnection cs = new SqlConnection("Server=(local); Database=Ksiazki; Integrated Security=TRUE");
SqlDataAdapter da = new SqlDataAdapter();
da.InsertCommand = new SqlCommand("INSERT INTO Ksiazki VALUES (@tytul, @id_gatunku, @wydawnictwo, @rok_wydania)", cs);
da.InsertCommand.Parameters.Add("@tytul", SqlDbType.VarChar).Value = textBox1.Text;
da.InsertCommand.Parameters.Add("@id_gatunku", SqlDbType.Int).Value = textBox2.Text;
da.InsertCommand.Parameters.Add("@wydawnictwo", SqlDbType.VarChar).Value = textBox3.Text;
da.InsertCommand.Parameters.Add("@rok_wydania", SqlDbType.VarChar).Value = textBox4.Text;
cs.Open();
da.InsertCommand.ExecuteNonQuery();
cs.Close();
}
}
}
Jak widać, jest tam klucz obcy, który wywala mi błąd "The INSERT statement conflicted with the FOREIGN KEY constraint "FK__Ksiazki__id_gatu__08EA5793". The conflict occurred in database "Ksiazki", table "dbo.Gatunki", column 'id_gatunku'.
The statement has been terminated."
I nie wiem co dalej, czy w ogóle tak to ma wyglądać. Z baz danych jestem zielony, c# dopiero poznaję.