---
title: "Hämta från 2 ställen i en databas"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/96971-hämta-från-2-ställen-i-en-databas"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "NightFlash"
published: "2004-02-09T17:51:53.000Z"
updated: "2004-02-11T13:26:54.000Z"
replies: 14
views: 426
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/96971-hämta-från-2-ställen-i-en-databas"
---

# Hämta från 2 ställen i en databas

## #1 — NightFlash, 2004-02-09T17:51Z



Permalänk: https://www.webforum.nu/p/96971

## #2 — Gladh, 2004-02-09T18:47Z

Du löser detta med ItemDataBound eventet som finns på Repeaters/DataGrids.

Det betyder att för varje post i din första fråga så körs eventet och i detta event så kan du ställa en ny fråga till din databas.

Detta är dock inte en lösning att rekomender eftersom du kommer gör lika många förfrågningar mot databas som du har poster i din första fråga...

Du borde läsa på om relationer och databasdesgin så hade det säkert gått att lösa med en Inner Join i din SQL sats, och du på detta vis endast behöver ställa EN fråga till databasen.

\- M

p.s välkommen till forumet.

Permalänk: https://www.webforum.nu/p/1271762

## #3 — asmodie, 2004-02-09T18:50Z

Detta har jag skrivit tidigare kanske kan ge dig en aning om hur du ska lösa problemet.
<http://www.webforum.nu/showthread.php?s=&threadid=94331&forumid=191>

Men jag håller med Gladh en INNER JOIN kan nog lösa ditt problem men det beror på om det bara finns en rad per post i den andra förfrågningen. Annars rekomenderar jag den lösningen jag försöker visa i länken.

Permalänk: https://www.webforum.nu/p/1271764

## #4 — NightFlash, 2004-02-09T19:36Z

dim objCmd as new OleDbDataAdapter ("SELECT Present.PSID, Students.SID, Students.SFIRSTNAME, Students.SLASTNAME, Students.SCLASS FROM Present INNER JOIN Students ON Present.PSID = Students.SID Where Present.PCID = '" & Request.Querystring("CID") & "'", objConn)

Verkar funka iaf men sen dör allt på ett annat ställe...

Och eftersom dessa saker inte ens existerar i ASP så vet jag inte riktigt hur jag ska skriva om sakerna.

dim ds as DataSet = new DataSet()
objCmd.Fill(ds, "**Present**")

MyDataList.DataSource = ds.Tables("Present").DefaultView
MyDataList.DataBind()

eftersom det är två tabeller så ska det inte stå "Present" där men jag måste ju ha en DataSet för att kunna komam vidare till MyDataList och sedan till ItemTemplate.

Känns som om man måste läsa hela .NET boken 20 ggr innan man förstår allt bör nog skaffa en bättre bok också denna verkar suga =(

Permalänk: https://www.webforum.nu/p/1271780

## #5 — asmodie, 2004-02-09T19:40Z

Oki...
Du verkar inte har läst mitt exempel speciellt bra.
Det du gör att du väljer typ
SELECT \* FROM minDbTabell1 som du fyller upp det första dataset tabellen "minDbTabell1" med.
Sedan kör du 
SELECT \* FROM minDbTabell2 och sedan fyller du upp datasettabellen "minDbTabell2"
Sedan tar du ut varje rad i minDbTabell2 som har det idt som du söker efter.

Permalänk: https://www.webforum.nu/p/1271781

## #6 — NightFlash, 2004-02-09T20:28Z

dim SQL as string = "SELECT Present.PID,Present.PV11,Present.PV12,Present.PV13,Present.PV14,Present.PV15,Present.PV16,
Present.PV17,Present.PV18,Present.PV19,Present.PV20,Present.PV21,Present.PV22,Present.PV23,Present.
PSID,Students.SID,Students.SFIRSTNAME,Students.SLASTNAME,Students.SCLASS FROM Present INNER JOIN 
Students ON Present.PSID = Students.SID Where Present.PCID = " & (Request.Querystring("CID")) &""

Den blir lite onödigt lång tycker jag... finns det inget bättre sätt??

Permalänk: https://www.webforum.nu/p/1271800

## #7 — Gladh, 2004-02-10T09:29Z

> Present.PV11,Present.PV12,Present.PV13,Present.PV14,Present.PV15,Present.PV16,
> Present.PV17,Present.PV18,Present.PV19,Present.PV20,Present.PV21,Present.PV22,Present.PV23

Du har alltså lagt en ny kolumn för varje vecka i din Tabell Present????

Om det är fallet, så finns det bättre sätt, en korrekt databasdesign. Kan du inte visa hur dina tabeller ser ut, för just nu ser det väldigt fel ut.

\- Magnus

Permalänk: https://www.webforum.nu/p/1271968

## #8 — NightFlash, 2004-02-10T12:18Z

Du råkar inte ha ICQ? enklare att ta allt där då..

// Fredrik

UIN:9336651

Permalänk: https://www.webforum.nu/p/1272052

## #9 — Gladh, 2004-02-10T19:19Z

Dumt att missa chansen att få hjälp av flera personer, samt att jag sällan sitter vid datorn hemma, utan mest på jobb, och där finns ingen ICQ.

Du kan dock läsa på lite om Normalisering av databaser, vilket din databasdesign säkert behöver:

<http://databases.about.com/library/weekly/aa080501a.htm>
Läs även de relaterade artiklarna för att förstå mer.

\- M

Permalänk: https://www.webforum.nu/p/1272336

## #10 — asmodie, 2004-02-10T20:22Z

Bara att adda mig på icq...finns i mitt info.

Permalänk: https://www.webforum.nu/p/1272419

## #11 — NightFlash, 2004-02-11T12:45Z

Databasen kan ni kika på <http://ankan.ath.cx/nv.mdb>

Vet inte riktigt hur jag ska fixa den eftersom det är ett närvaro system för en skola.

Många elever, klasser, lektioner, tider etc 

ideer på bättre upplägg vore bra iaf..

och ja jag leker fortfarande med access =)

Permalänk: https://www.webforum.nu/p/1273074

## #12 — asmodie, 2004-02-11T13:04Z

Du måste nog sätta dig med papper och penna en del och rita små fyrkanter och så. Lära dig lite databas modelering.

Och du måste lära dig att namnge kolumnerna och tabellerna bättre. CID, PID, TID fattar inget av vad de betyder utan att kolla det i de andra tabellerna.

Men om jag har fattat det rätt:
En klass innehåller flera elever
En kurs har ett standaliserat schema
En kurs har har en lärare
En kurs går över flera veckor
För varje kurstilfälle ska elever registrera närvaro

Permalänk: https://www.webforum.nu/p/1273083

## #13 — NightFlash, 2004-02-11T13:09Z

jao. Eftersom det är grymt många elever lektioner och närvaro tillfällen så visste jag inte riktigt hur jag skulel dela upp det..

Satte 
lärare i en tabell
elever i en tabell
lektioner i en tabell och så närvaron som hämtar info från de 3 andra.

men men ideer välkomnas iaf.

TID = TeachersID
CID = ClassID
PID = PresentID
SID = StudentID

sätter första bokstaven i Tabell namnet i alla kolumner. logiskt för mig iaf

Permalänk: https://www.webforum.nu/p/1273085

## #14 — asmodie, 2004-02-11T13:19Z

TID = TeachersID varför vad är det för fel på TeacherID? Det är inte ett långt namn och det beskriver vem id tillhör.

Permalänk: https://www.webforum.nu/p/1273089

## #15 — asmodie, 2004-02-11T13:26Z

Du borde göra om lite i dina tabeller.

En tabell för:
Lärare
Elever
Klasser(Som innehåller alla elever så man vet vilken klass de till hör, bra att veta när man programmerar)
KlassTillElever
Kurs
KursTillKlass
SchemaDag(Innehåller veckodag, sluttid och start tid)
KursTillSchemadag
Kurstillfälle(ska innehålla tiddatum, kursID, elevID och en närvaro bit)

Detta handlar mer om databaser än asp.net du borde ta det i SQL forumet i stället.

Permalänk: https://www.webforum.nu/p/1273090

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/96971-hämta-från-2-ställen-i-en-databas
