11. september 2005 - 22:42Der er
10 kommentarer og 1 løsning
Relationer i DataSet
Hejsa
Jeg har et problem. Jeg har to tabeller i min database: En "user" og en "forum". Når jeg så vil hente et DataSet med en liste over tråde i forummet, bruger jeg en simpel sql-sætning der henter alle oplysninger ud af "forum" tabellen, inkl. feltet "authorId", men det kan jeg jo ikke bruge til meget når jeg skal vise det frem. Er der en måde hvorpå jeg kan få hevet oplysningen "username" ud af min "user" tabel, og ligge det ind i mit DataSet, så jeg kan databinde det hele til en eller anden kontrol (eks. DataGrid), og udskrive "username" i stedet for "authorid"?
Det kan selvfølgelig godt være det kan klares med joins, det havde jeg slet ikke tænkt på. Mine tanker rodede rundt i noget med om man i en forum klasse kunne lave relationerne, og så somehow databinde flere instanser af den klasse til en kontrol. Jeg mener jeg engang så en der lavede noget med array's eller arralist's eller noget i den dur. Jeg prøver med joins indtil videre...
du kan hælde flere tabeller i et datasæt, og også oprette relationer imellem dem, så du kan have det samme i datæsettet som du har i databasen.... er det det du gerne vil? mvh
Tja, det kan man godt sige. Altså jeg vil bare gerne have muligheden for at lave nogle relationer, efter hvad der passer til en given funktion. F.eks. hente brugernavn og e-mail udfra et id i en anden tabel.
Det virker med joins. Hvis DataSettet skal databindes til en control skal man dog skrive eks. select debat.Title AS DebatTitle,debat.Date AS DebatDate,user.Name AS UserName ... for controls (jeg har prøvet med Repeater) kan åbenbart ikke forstå "debat.Title" som DataRow... arne og lifo, smider i nogle svar?
hvis du har flere tabeller i datasættet, skal du hente relevant info fra de andre tabeller i forbindelse med databindingen... det sker ikke automatisk. mvh
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.