Avatar billede t-rex Nybegynder
22. marts 2007 - 08:11 Der er 8 kommentarer og
1 løsning

hente data fra 2 tabeler i database C#

Hej.

Jeg skal have hentet data ud fra 2 tabler fra min database.

Den ene tabel  hedder : Post og indeholder ID og Heding.

Den anden tabel hedder : Coment og indeholder ID og Coment og PostID


Det jeg så skal er at jeg skal udskrive Heding fra Post som en over skrift of så skal den der efter udskrive alle dem som har det samme PostID.

Eks.

Overskrift (ID = 1)
  tekst1 (PostID = 1)
  Tekst2 (PostID = 1)

Overskrift2 (ID = 2)
  Tekst3 (PostID = 2)

osv...

Mvh

T-rex
Avatar billede kalp Novice
22. marts 2007 - 08:41 #1
SELECT * FROM POST, COMENT WHERE ID = PostID;

sådan kan din sql se ud.

men du vil måske gerne have hjælpe til at lave det korrekte output?
Avatar billede t-rex Nybegynder
22. marts 2007 - 08:49 #2
hvis jeg gør det kommer jeg ikke rigtig ud over det probelm jeg har. det skal jo gerne udskrive Heding fra Post og så skal den udskrive alle de comment fra Coment som har det samme id som Post har.

jeg ville sige jeg skulle have fat i noget while noget men er ikke helt sikker.
Avatar billede kalp Novice
22. marts 2007 - 09:32 #3
I min forrige kommentar så spørger jeg skam også til om du har problemer med at lave output, så det kunne du jo bare svare ja til;-)

Ud fra hvad du har skrevet (dvs ingen kode) så ved jeg ikke hvor detaljeret man skal forklare det til dig.. så prøver lige at føle mig frem.

Benytter du en SqlDataReader ?
for så er koden meget simpel at producere. Kommer med et eksempel når du har svaret.
Avatar billede t-rex Nybegynder
22. marts 2007 - 09:46 #4
jeg bruger OleDbDataReader men det er vel næsten det samme som SqlDataReader :-)
Avatar billede kalp Novice
22. marts 2007 - 09:51 #5
Det lige det..

hvis vi siger du har kaldt din OleDbDataReader for "reader", så noget alá dette.

string lastHeader = "";
while(reader.Read())
{
if(reader["Heding"].ToString() != lastHeader){
Response.Write(reader["Heading"].ToString());
Response.Write("<br />");
}
Response.Write(reader["Coment"].ToString);
lastHeader = reader["Heding"].ToString();
}

og ikke mere :P
har ikke lige testet det med syntax men ideen er god nok.
Avatar billede t-rex Nybegynder
22. marts 2007 - 12:00 #6
jeg har nu sidet og leget lidt frem og tilbage men får ikke det rigtige ud som jeg gerne ville have. jeg har lavet et lille eksembel som jeg kunne forstille mig det skulle hænge sammen men det virker ikke helt da den kun kører den inderest while løkke en gang og ikke x antal gange.

            System.Data.OleDb.OleDbCommand Cmd1 = new System.Data.OleDb.OleDbCommand("SELECT * FROM BlogPost", conn1);
            conn1.Open();
            System.Data.OleDb.OleDbDataReader reader = Cmd1.ExecuteReader();

            System.Data.OleDb.OleDbCommand Cmd2 = new System.Data.OleDb.OleDbCommand("SELECT * FROM Comments", conn1);
            System.Data.OleDb.OleDbDataReader reader2 = Cmd2.ExecuteReader();



           
            while (reader.Read())
            { 
                Response.Write(reader["Blog_ID"]);
                Response.Write("<br />");
               

                while (reader2.Read())
                {
                    if (reader["Blog_ID"].ToString() == reader2["ForBlog_ID"].ToString())
                    {
                        Response.Write(reader2["Comments_ID"]);
                        Response.Write("<br />");
                    }
                }
                Response.Write("<br />");
            }
Avatar billede kalp Novice
22. marts 2007 - 12:09 #7
kan du huske hvad jeg skrev i mit første indlæg?
din sql!
dvs. du skal kun lave en reader og bruge MIN kode:)

dvs.lav en reader og brug denne sql
SELECT * FROM BlogPost, Comments WHERE ID = PostID;
Avatar billede t-rex Nybegynder
22. marts 2007 - 12:29 #8
det virker jo fint hvis man bare læser hvad du skrive :-)
Avatar billede kalp Novice
22. marts 2007 - 12:37 #9
Det er jo det jeg siger:P

og meget simplere hehe:)

tak for point;)
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