Avatar billede JenZen Novice
18. juli 2008 - 17:56 Der er 17 kommentarer og
1 løsning

loop i asp med data fra sql

Her er min kode:

<%
        Set Conn = Server.CreateObject("ADODB.Connection")
        conn.Open "Provider=SQLOLEDB; Data Source =WEBSERVER\SPC; Initial Catalog = STS_trm_1846091006; User Id = soeg; Password=soeg"

SQL = "SELECT * FROM Docs WHERE (DirName LIKE '%kvalitet%') AND (Extension = 'DOC' OR Extension = 'XLS' OR Extension = 'VSD' OR Extension = 'MHT') AND (LeafName LIKE '%projekt%')"

Set Rs = Conn.Execute(SQL)
   
If Rs.EOF Then
    Response.Write "<pre>Ingen dokumenter passer til søgningen</pre>" & vbcrlf       
Else

    Response.Write "<table cellspacing='1' cellpadding='2' border='0' width='100%'>" & vbcrlf
    Response.Write "    <tr>" & vbcrlf
    Response.Write "        <td style='border-bottom: 1px solid #808080;'><font face='Verdana' size='1' color='#808080'>Dokumentnavn</font></td>" & vbcrlf
    Response.Write "    </tr>" & vbcrlf
       
    Response.Write "    <tr>" & vbcrlf
        Response.Write "        <td><font face='Verdana' size='1' color='#000000'>" & Rs("Leafname") & "</font></td>" & vbcrlf
        Response.Write "    </tr>" & vbcrlf

        Rs.MoveNext
       
    Response.Write "</table>" & vbcrlf

End If
Set Rs = Nothing
%>

Den viser mig kun ét resultat der indeholder projekt, og jeg ved der er 3 er det fordi den ikke looper eller hvad ?
HJÆLP
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:03 #1
Yep..

Sådan:

do while not rs.eof

    Response.Write "<table cellspacing='1' cellpadding='2' border='0' width='100%'>" & vbcrlf
    Response.Write "    <tr>" & vbcrlf
    Response.Write "        <td style='border-bottom: 1px solid #808080;'><font face='Verdana' size='1' color='#808080'>Dokumentnavn</font></td>" & vbcrlf
    Response.Write "    </tr>" & vbcrlf
       
    Response.Write "    <tr>" & vbcrlf
        Response.Write "        <td><font face='Verdana' size='1' color='#000000'>" & Rs("Leafname") & "</font></td>" & vbcrlf
        Response.Write "    </tr>" & vbcrlf

        Rs.MoveNext
       
loop
    Response.Write "</table>" & vbcrlf
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:03 #2
Rettelse:


do while not rs.eof

    Response.Write "<table cellspacing='1' cellpadding='2' border='0' width='100%'>" & vbcrlf
    Response.Write "    <tr>" & vbcrlf
    Response.Write "        <td style='border-bottom: 1px solid #808080;'><font face='Verdana' size='1' color='#808080'>Dokumentnavn</font></td>" & vbcrlf
    Response.Write "    </tr>" & vbcrlf
       
    Response.Write "    <tr>" & vbcrlf
        Response.Write "        <td><font face='Verdana' size='1' color='#000000'>" & Rs("Leafname") & "</font></td>" & vbcrlf
        Response.Write "    </tr>" & vbcrlf
       
    Response.Write "</table>" & vbcrlf

        Rs.MoveNext
loop
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:04 #3
Jeg går ud fra, at den skal oprette en hel tabel, for hver projekt i databasen..
Avatar billede JenZen Novice
18. juli 2008 - 18:07 #4
Kan du ikke lige prøve at sætte det der ind i mind kode så det bliver rigtig ?
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:22 #5
<%
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=SQLOLEDB; Data Source =WEBSERVER\SPC; Initial Catalog = STS_trm_1846091006; User Id = soeg; Password=soeg"
SQL = "SELECT * FROM Docs WHERE (DirName LIKE '%kvalitet%') AND (Extension = 'DOC' OR Extension = 'XLS' OR Extension = 'VSD' OR Extension = 'MHT') AND (LeafName LIKE '%projekt%')"

Set Rs = Conn.Execute(SQL)
If Rs.EOF Then
    Response.Write "<pre>Ingen dokumenter passer til søgningen</pre>" & vbcrlf       
Else
    Do While Not rs.eof
        Response.Write "<table cellspacing='1' cellpadding='2' border='0' width='100%'>" & vbcrlf
        Response.Write "    <tr>" & vbcrlf
        Response.Write "        <td style='border-bottom: 1px solid #808080;'><font face='Verdana' size='1' color='#808080'>Dokumentnavn</font></td>" & vbcrlf
        Response.Write "    </tr>" & vbcrlf
        Response.Write "    <tr>" & vbcrlf
        Response.Write "        <td><font face='Verdana' size='1' color='#000000'>" & Rs("Leafname") & "</font></td>" & vbcrlf
        Response.Write "    </tr>" & vbcrlf
        Response.Write "</table>" & vbcrlf
    Rs.MoveNext
    Loop
End If
rs.close
Set Rs = Nothing
conn.close
Set conn = nothing
%>
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:24 #6
Jeg ved ikke om det er bedre, men man kan bruge følgende SQL sætning:

SQL = "SELECT * FROM Docs WHERE (DirName LIKE '%kvalitet%') AND Extension in ('DOC','XLS','VSD','MHT') AND (LeafName LIKE '%projekt%')"

Som du kan se, har jeg forkortet din Extension del.

Hvis du vælger den korte udgave, skal du bare erstatte nuværende SQL-linie med den korte udgave.
Avatar billede JenZen Novice
18. juli 2008 - 18:31 #7
Meget smartere med den korte udgave, nu mangler jeg kun én ting:

Outputtet nu ser således ud:

Dokumentnavn
__________________________________
Projekt 1
Dokumentnavn
__________________________________
Projekt 2
Dokumentnavn
__________________________________
Projekt 3

Jeg kunne meget godt tænke mig outputtet således:

Dokumentnavn
__________________________________
Projekt 1
Projekt 2
Projekt 3
Projekt 4

Med hveranden tabel i grå hvis du forstår?
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:35 #8
Din SQL-del skal ikke ændres.

Jeg går ud fra, at du kan finde ud af at erstatte korrekt del, når jeg giver dig følgende kode :-)

Set Rs = Conn.Execute(SQL)
If Rs.EOF Then
    Response.Write "<pre>Ingen dokumenter passer til søgningen</pre>" & vbcrlf       
Else
        Response.Write "<table cellspacing='1' cellpadding='2' border='0' width='100%'>" & vbcrlf
        Response.Write "    <tr>" & vbcrlf
        Response.Write "        <td style='border-bottom: 1px solid #808080;'><font face='Verdana' size='1' color='#808080'>Dokumentnavn</font></td>" & vbcrlf
        Response.Write "    </tr>" & vbcrlf

    Do While Not rs.eof
        Response.Write "    <tr>" & vbcrlf
        Response.Write "        <td><font face='Verdana' size='1' color='#000000'>" & Rs("Leafname") & "</font></td>" & vbcrlf
        Response.Write "    </tr>" & vbcrlf
    Rs.MoveNext
    Loop
    Response.Write "</table>" & vbcrlf
End If
rs.close
Set Rs = Nothing
conn.close
Set conn = nothing
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:37 #9
Det var det med "hel tabel" jeg skrev i 18/07-2008 18:04:33.. :-)

Ændringen i 18/07-2008 18:35:31 er ikke teste med hensyn til udskriften..
Avatar billede JenZen Novice
18. juli 2008 - 18:38 #10
smukt, nu mangler jeg bare hver anden linie i grå :)
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:41 #11
Sådan?:

Set Rs = Conn.Execute(SQL)
If Rs.EOF Then
    Response.Write "<pre>Ingen dokumenter passer til søgningen</pre>" & vbcrlf       
Else
        Response.Write "<table cellspacing='1' cellpadding='2' border='0' width='100%'>" & vbcrlf
        Response.Write "    <tr>" & vbcrlf
        Response.Write "        <td style='border-bottom: 1px solid #808080;'><font face='Verdana' size='1' color='#808080'>Dokumentnavn</font></td>" & vbcrlf
        Response.Write "    </tr>" & vbcrlf

    Dim color
    color = "#808080"
    Do While Not rs.eof
        If color = "#808080" Then
            color = "#000000"
        Else
            color = "#808080"
        End if
        Response.Write "    <tr>" & vbcrlf
        Response.Write "        <td style='border-bottom: 1px solid " & color & ";'><font face='Verdana' size='1' color='#000000'>" & Rs("Leafname") & "</font></td>" & vbcrlf
        Response.Write "    </tr>" & vbcrlf
    Rs.MoveNext
    Loop
    Response.Write "</table>" & vbcrlf
End If
rs.close
Set Rs = Nothing
conn.close
Set conn = nothing
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:42 #12
Svar.
Avatar billede JenZen Novice
18. juli 2008 - 18:49 #13
Jeg mente nu at hver anden tabels udfyld er grå

Således:

<table border="0" width="100%" cellspacing="0" cellpadding="0">
    <tr>
        <td>Projekt 1</td>
    </tr>
    <tr>
        <td bgcolor="#C0C0C0">Projekt 2</td>
    </tr>
    <tr>
        <td>Projekt 3</td>
    </tr>
    <tr>
        <td bgcolor="#C0C0C0">Projekt 4</td>
    </tr>
</table>
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:52 #14
Ahh.. jeg troede at "linie" var "________________" på din skitse..

Så skal du bare erstatte

"<td>"

med

"<td bgcolor='" & color & "'>"
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:54 #15
Du vælger farverne her:

        If color = "#808080" Then
            color = "#000000"
        Else
            color = "#808080"
        End if

Erstat evt "#808080" med "#C0C0C0", og "#000000" med "#FFFFFF" hvis baggrunden er hvid.
Avatar billede thesurfer Nybegynder
18. juli 2008 - 18:56 #16
Hvis du ikke vil vælge farve, til den farve der ikke er grå, kan du gøre sådan her:

Set Rs = Conn.Execute(SQL)
If Rs.EOF Then
    Response.Write "<pre>Ingen dokumenter passer til søgningen</pre>" & vbcrlf       
Else
    Response.Write "<table cellspacing='1' cellpadding='2' border='0' width='100%'>" & vbcrlf
    Response.Write "    <tr>" & vbcrlf
    Response.Write "        <td style='border-bottom: 1px solid #808080;'><font face='Verdana' size='1' color='#808080'>Dokumentnavn</font></td>" & vbcrlf
    Response.Write "    </tr>" & vbcrlf

    Dim color
    color = " bgcolor='#C0C0C0'"
    Do While Not rs.eof
        If color = " bgcolor='#C0C0C0'" Then
            color = ""
        Else
            color = " bgcolor='#C0C0C0'"
        End if
        Response.Write "    <tr>" & vbcrlf
        Response.Write "        <td" & color & "><font face='Verdana' size='1' color='#000000'>" & Rs("Leafname") & "</font></td>" & vbcrlf
        Response.Write "    </tr>" & vbcrlf
    Rs.MoveNext
    Loop
    Response.Write "</table>" & vbcrlf
End If
rs.close
Set Rs = Nothing
conn.close
Set conn = nothing
Avatar billede JenZen Novice
18. juli 2008 - 19:17 #17
Du er sku kanon, MANGE MANGE TAK
Avatar billede thesurfer Nybegynder
18. juli 2008 - 19:42 #18
Det var så lidt :-)

Takker for points.
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
Kurser inden for grundlæggende programmering

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