Avatar billede dresen Nybegynder
18. juli 2006 - 00:33 Der er 10 kommentarer og
1 løsning

sqldatareader read

Hej eksperter.

Jeg vælter rundt i et forsøg på at tillære mig .net

Har været inde for at læse om sqldatareader, og fundet følgende kodestump:

    // Call Read before accessing data.
        while (reader.Read())
        {
            Console.WriteLine(String.Format("{0}, {1}",
                reader[0], reader[1]));
        }

        // Call Close when done reading.
        reader.Close();
    }

Er der nogen der kan fortælle mig, hvad der tilgås når der skrives reader[0] og reader[1]? Har ikke umiddelbart kunnet finde noget om det, lignet ikke noget fra java verdenen.

på forhånd tak.

/dres
Avatar billede arne_v Ekspert
18. juli 2006 - 00:41 #1
SqlCommand cmd = new SqlCommand(sqlstr, con);
        SqlDataReader reader = cmd.ExecuteReader();
        while (reader.Read())
        {
            Console.WriteLine((int)reader[0] + " " + (string)reader[1]);
        }

er:

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sqlstr);
while(rs.next()) {
    System.out.println(rs.getInt(1) + " " + rs.getString(2));
}
Avatar billede arne_v Ekspert
18. juli 2006 - 00:42 #2
SqlCommand = Statement/PreparedStatement
SqlDataReader = ResultSet
(int)reader[n] = rs.getInt(n+1)

NB: .NET starter kolonner med 0 - Java starter kolonner med 1
Avatar billede hmortensen Nybegynder
18. juli 2006 - 00:42 #3
0 og 1 indexene, kan skiftes til streng index, hvilket gør det noget nemmere at overskue.
Avatar billede arne_v Ekspert
18. juli 2006 - 00:42 #4
(int)reader[n] og reader.GetInt32(n) er iøvrigt synonymer
Avatar billede akempff Nybegynder
18. juli 2006 - 09:48 #5
Som en kommentar til Arnes indlæg her, så er det kolonnerne du tilgår ved hjælp at index.  Du kan også skrive (int)reader["userid"] på en "select userid from users....", f.eks. som hmortensen skriver.
Avatar billede dresen Nybegynder
18. juli 2006 - 09:59 #6
Hej hmortensen og arne_v

Tak for jeres svar.

Er det et spørgsmål om temperament, hvordan man gør (altså af de to ting metoder arne_v præsenterer kl. 00:42)?

Har det et navn når man tilgår variable på denne måde, og er det specifikt for sqldatareder'en?

Fremgår det herunder: http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx

/dresen
Avatar billede dresen Nybegynder
18. juli 2006 - 10:00 #7
uddybning: .... fremgår det af følgende http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.aspx , at man kan gøre sådan?

Har ikke kunnet finde det.

tak / dresen
Avatar billede arne_v Ekspert
18. juli 2006 - 13:17 #8
00:42:58 ?

ja - det er vist mest et temperaments spørgsmål
Avatar billede dresen Nybegynder
18. juli 2006 - 13:23 #9
Hehe, ja jeg var ikke lige opmærksom på at jeres svar faldt så tæt.

Fandt en tutorial der beskriver det her: http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson04.aspx

Mange tak for hjælpen. Læg gerne et svar.

vh/ dresen
Avatar billede arne_v Ekspert
18. juli 2006 - 13:29 #10
ok
Avatar billede dresen Nybegynder
20. juli 2006 - 11:25 #11
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