Update query i gridview i mange-til-mange relations tabel
Jeg har et problem med hensyn til at opdatere en mange-til-mange relations tabel. Jeg har en "Users" tabel og en "Books" som hver især har en primær nøgle - henholdsvis UserID (brugerens alias) og BookID (ISBN nummeret). Jeg har så oprettet en tredje tabel - "UsersBooks" - som har to foreign nøgler - UserID og BookID - som er forbundet med de to primær nøgler i henholdsvis "Users" tabellen og "Books" tabellen. Når jeg viser min "UsersBooks" tabel i et gridview har jeg valgt også at vise selve bogtitlen fra "Books" tabellen - dette field hedder Title i "Books" tabellen. Min SELECT query ser således ud:SELECT UserBooks.UserBookID, UserBooks.UserID, UserBooks.BookID, Books.Title FROM UserBooks INNER JOIN Books ON UserBooks.BookID = Books.BookID
Det virker fint nok. Problemet opstår når jeg vil opdatere en record i gridview. I Edit mode har jeg konverteret Book feltet til et templatefield som viser en dropdownlist som viser alle de bøger som er til rådighed i "Books" tabellen. Jeg vil gerne have at brugeren skal vælge bogtitlen frem for BookID (bogens ISBN nummer) da bogens titel er mere sigende end ISBN nummeret. Så når de vælger at opdatere bogens titel, så vælger de en bogtitel fra dropdown menuen i Title feltet og når de så trykker på opdater, så vil BookID automatisk blive opdateret i UsersBooks tabellen - det sker desværre bare ikke! Min UPDATE query ser således ud (det er her der må være et problem):
UPDATE UserBooks SET UserID = @UserID, BookID = @BookID FROM UserBooks INNER JOIN Books ON UserBooks.BookID = Books.BookID WHERE (UserBooks.UserBookID = @UserBookID)