Avatar billede smal64 Novice
12. februar 2011 - 00:25 Der er 2 kommentarer og
1 løsning

Hente data fra/geme data i flere tabelle med relationer imellem de forskellige tabeller

Hej Eksperter

Sidder og roder med en hjemmestrikker databse med 14 tabeller, hvor der er relationer rundt omkring mellem de forskellige tabeller.

Er så stødt ind i problemer på grund af mit ringe kendskab til SQL sprogets muligheder. Jeg vil f.eks. gerne trække data udfra databasen fra 3 tabeller, der er forbundet med hinanden via mange til en relationer.

Eks. Min Medlemskartotek tabel har en fremmed nøgle (nøglexId), der er primærnøgle i en Adresse Tabel. I Adresse tabellen er der en fremmede nøgle (nøgleyId), der er primærnøgle i en LandeKode Tabel.

Så hvad er SQL syntaksen for at gøre dette ???

Skal måske lige nævne, at jeg gerne vil bruge TableAdapters i Visual Studio til at huse de nødvendige SQL sætninger.

Vil også gerne bruge TableAdapters til at stå for Insert, Update og Delete af de forskellige tabeller. Kan det gøres smart her også i ét hug, eller skal man lægge data i de forskellige tabeller seperat ved brug af forskellige TableAdapters. Her tænker jeg selvfølgelig igen på flere end 2 tabeller og med relationer mellem tabellerne. Ved godt at det er meget nemt, at lægge data i 1 tabel ved brug af TableAdapters.
Avatar billede Syska Mester
12. februar 2011 - 00:31 #1
Kig på en ORM.

Entity Framework <- Den bruger jeg selv.
NHibernate <- Kan sygt meget, og nok derfor den mest komplekse.
Linq2Sql <- Super simple.
SubSonic <- Super simple.

Jeg ser aldrig TableAdapters mere ... synes jeg hører .NET 2.0 til, men kan jo tage fejl.

Du kan ikke lave noget magisk insert med dem så vist jeg ved. Men de ORM ( Object Relation Mappers ) jeg har nævnt ovenfor kan ( er lidt i tvivl om de 2 sidte kan )

Men der kan du f.eks gøre.

User u = new User();
u.Name = "small64";
Address adr = new Address();
adr.SomeIngo = "jdasklds";
u.Addresses.Add(adr);

og langt ud ... alt efter relation levels etc.

Så har du en context ( kan du sammenligne med din database, da det er hvad den mapper til )

context.Users.Add(u);

Så sørger den selv for at gemme relations etc.

Håber du kan følge det ... du arbejder med din database ligesom collections i .NET.

mvh
Avatar billede smal64 Novice
29. marts 2011 - 01:08 #2
Hej buzzzz

Må med skam erkende, at jeg ikke fik sendt dig en kommentar i tidernes morgen til dit indlæg. Men jeg har været i ORM mode og kan se det vældig smarte i denne måde at angribe min problemstilling på. Så hvis du lige kan sende mig et svar, så kan jeg få givet dig dine velfortjente points.

Hilsen
smal64
Avatar billede Syska Mester
29. marts 2011 - 02:02 #3
Svar.

Gør ikke så meget ... bare du vendte tilbage og det gjorde du nu.

TableAdapter er jeg faktisk ikke klar over om nogen bruger mere, jeg ville i hvert fald ikek gøre det med mindre jeg havde en god grund til det, og jeg aner ikke lige hvad der skulle være. Tror ORMe har overtaget hvad TableAdapter blev lavet til.

mvh
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
Computerworld tilbyder specialiserede kurser i database-management

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