Avatar billede skindbeni Nybegynder
05. september 2007 - 18:33 Der er 9 kommentarer og
2 løsninger

Hente seneste 6 nyheder og placere dem i forskellige labels

Jeg har planer om at hente de seneste 6 myheder på min webside frem på min forside i 6 bokse af forskellig størrelse og placering (en stor, to mellem og 3 små).

Dertil har jeg oprettet nogle tabeller med nogle labels

lblNyhed1Dato
lblNyhed1Overskrift
lblNyhed1Indhold

lblNyhed2Dato
lblNyhed2Overskrift
lblNyhed2Indhold

osv op til nyhed6

Jeg har forbindelse til min Access database gennem de oprettede OleDbConnection, OleDbDatareader og OleDbCommand

Følgende SQL er oprettet:
SQL = "SELECT TOP 6 Titel, Indhold, NyhedsDato FROM indhold ORDER BY NyhedsDato"

Jeg åbner forbindelsen, kører min SQL og indlæser i min datareader. Og herefter famler jeg i blinde.

Mit første forsøg var noget i retning af:

Dim i As Integer
If NewsReader.Read = True Then
  For i = 1 To 6
    lblNyhed1Overskrift.Text = NewsReader("Titel").ToString.Trim()
  Next
End If

Hvor jeg ville løbe min kode igennem 6 gange for at hente de seneste 6 nyheder og indsætte dem i tilhørende labels.

Men jeg er enten kørt fast i ovenstående kode - ellers er jeg langt fra, hvor jeg burde være og skal have hjælp til at komme tilbage på sporet med en bedre / rigtig kode
Avatar billede nielle Nybegynder
05. september 2007 - 18:49 #1
Du kan læøgge dine labels i et array og så gennemløbe dette:

        Dim lblOverskiftArr As Label() = New Label() {lblNyhed1Overskrift, lblNyhed2Overskrift, lblNyhed3Overskrift, lblNyhed4Overskrift, lblNyhed5Overskrift, lblNyhed6Overskrift}

        Dim i As Integer
        If NewsReader.Read = True Then
            For i = 0 To 5
                lblOverskiftArr(i).Text = NewsReader("Titel").ToString.Trim()
            Next
        End If
Avatar billede skindbeni Nybegynder
05. september 2007 - 19:05 #2
Ja, det løste egentlig problemet, men affødte et nyt problem, som jeg havde overset eller misforstået.

Nu kommer det samme indhold i alle 6 labels.
Avatar billede korup Nybegynder
05. september 2007 - 19:23 #3
Du kan skifte din IF ud med en WHILE NewsReader.Read, ellers kommer den ikke videre end første post :)

/korup
Avatar billede nielle Nybegynder
05. september 2007 - 20:22 #4
Nemlig, ja:

        Dim i As Integer = 0
        While NewsReader.Read = True
            lblOverskiftArr(i).Text = NewsReader("Titel").ToString.Trim()
            i = i + 1
        End While
Avatar billede neoman Novice
05. september 2007 - 20:44 #5
..og for en god ordens skyld :)

Sandhedstabelværdien er den samme, hvis man sammenligner en Boolean med True eller blot kigger på dens egen værdi.
Avatar billede skindbeni Nybegynder
05. september 2007 - 20:56 #6
Hej.

Det er bare kanon. Super.

Send gerne et svar, så jeg kan belønne.

Er det ikke mest fair, at nielle får pointene?
Avatar billede saudoo Nybegynder
05. september 2007 - 21:02 #7
Ja.. Eller du kan bruge en Repeater..

Hvis man tænker sig at du har kolonnerne fldId og fldOverskrift i en tabel, og du opretter en datatable f.eks. i Page_Load, samt binder den til din repeater.. Så kan du gøres således:

<asp:Repeater
  ID = "repRepeater"
  runat = "server">

  <ItemTemplate>
    <asp:Label
      ID = "lblLabel<%# DataBinder.Eval(Container.DataItem, "fldId")%>"
      runat = "server"
      text = <%# DataBinder.Eval(Container.DataItem, "fldOverskrift")%> />
  </ItemTemplate>
</asp:Repeater>

Du kan så selvfølgelig modificere din datatable før du binder den. :)
Avatar billede nielle Nybegynder
06. september 2007 - 06:54 #8
Svar :^)
Avatar billede nielle Nybegynder
17. september 2007 - 12:39 #9
Så mangler du bare at acceptere mit svar :^)
Avatar billede skindbeni Nybegynder
17. september 2007 - 16:15 #10
Selvfølgelig. Min fejl.
Avatar billede nielle Nybegynder
17. september 2007 - 18:42 #11
Takker 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