Avatar billede muggen Nybegynder
23. januar 2006 - 08:47 Der er 6 kommentarer og
1 løsning

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)
Avatar billede dr_chaos Nybegynder
23. januar 2006 - 08:54 #1
kan du ikke bare have ISBN som værdi på din dropdownliste ?
Og kan du ikke nøjes med
UPDATE UserBooks SET UserID = @UserID, BookID = @BookID WHERE (UserBooks.UserBookID = @UserBookID)
Avatar billede dr_chaos Nybegynder
23. januar 2006 - 08:55 #2
evt ved at finde det BookID du skal bruge først.
Avatar billede muggen Nybegynder
23. januar 2006 - 09:12 #3
dr chaos - Jeg kunne godt vælge bare lade brugeren vælge ISBN nummeret fra en dropdown liste, men det er i mine øjne ikke særligt brugervenligt. Folk kender som regel titlen og kan bare vælge den hvis de ser den i en liste - det kan de ikke med et ISBN nummer - så skal de have fat i bogen og slå op hvad ISBN nummeret er.
Avatar billede dr_chaos Nybegynder
23. januar 2006 - 09:20 #4
nej det ved jeg men hvis du nu sætter text på dropdownlisten til titel og value til isbn så kan du bruge isbn nummeret.
Avatar billede dr_chaos Nybegynder
23. januar 2006 - 09:20 #5
det er heller ikke en god ide at bruge titlen da man sagtens kan forestille sig flere bøger med samme titel.
Avatar billede muggen Nybegynder
28. januar 2006 - 11:18 #6
dr chaos - send som svar, så får du dine point. Jeg har fået det til at virke. Tak for hjælpen!!!
Avatar billede dr_chaos Nybegynder
28. januar 2006 - 11:23 #7
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester