Avatar billede dragnor Juniormester
19. juni 2007 - 10:49 Der er 18 kommentarer og
2 løsninger

Billeder med tekst fra database vis billedeserie

Hej Eksperter

Jeg sidder med en database, hvor i jeg har stien til en billedfil. fx. /billeder/2007/USA/image1.jpg

Samtidig har jeg jeg en tekstbeskrivelse til billedet.

Det jeg søger er hvordan jeg på min aspx side for den til i en tabel hente stien og billedeteksten ind fra min access db fil og vise det på følgende måde:

Image1.jpg
Tekstbeskrivelse
Mellemrum
image2.jpg
tekstbeskrivele
mellemrum

osv.

hvor billedet bliver sat til en bestemt størrelse.
Avatar billede dr_chaos Nybegynder
19. juni 2007 - 10:56 #1
Du kan bruge en asp:repeater med en itemtemplate:
<asp:Repeater ID="imgRep" runat="server" DataSourceID="dinaccesdatasource">
    <ItemTemplate>
    <asp:Image ID="img" runat="server" Width="100px" Height="100px" ImageUrl='<%#Eval("Stitilbillede") %>' />
    <asp:Label ID="lblText" runat="server" Text='<%#Eval("Tekstbeskrivelse") %>'></asp:Label>
    <br />
    </ItemTemplate>
    </asp:Repeater>
Avatar billede dragnor Juniormester
19. juni 2007 - 11:07 #2
det ser ikke dumt ud, jeg ser lige på det senere i dag :-) Men tak for rådet!
Avatar billede dr_chaos Nybegynder
19. juni 2007 - 11:21 #3
Helt fint du spørger bare hvis du er i tvivl om noget.
Avatar billede dr_chaos Nybegynder
20. juni 2007 - 10:07 #4
Tillader mig at ligge svar :)
Avatar billede dragnor Juniormester
21. juni 2007 - 16:25 #5
Hvordan ligger jeg data ind i min datasource?

OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Inetpub\\databases\\DB.mdb");
        con.Open();
        OleDbCommand selectCMD = new OleDbCommand("SELECT * FROM Billeder WHERE Years = '" + years.Text + "' AND Events = '" + theEvent.Text + "'", con);

        OleDbDataAdapter da2 = new OleDbDataAdapter();
        da2.SelectCommand = selectCMD;

        DataSet dataset2 = new DataSet();
        con.Close();
Avatar billede dragnor Juniormester
21. juni 2007 - 16:29 #6
kan du ud fra den information hjælpe? Altså vise mig hvordan jeg tager mit dataset og ligger det ind i en datasource som så kan anvendes i den repeater du du har skrevet? Jeg giver gerne flere point for din hjælp, det betyder meget for mig at jeg får det til at virke inden 1 juli, da det er en hjemmeside jeg er ved at lave til at ligge billeder op mens jeg er ude og rejse så familien kan følge med på nettet, håber du forstår min frustration :-)
Avatar billede neoman Novice
21. juni 2007 - 16:52 #7
En "DataSource" er født med data : ) Udvikler du i VWD eller VS? Så træk en AccessDataSource ind, derinde vælgt hvilke felter du vil have med fra hvilke ntable i din Access DB, og så er du stort set færdig, når du så angiver denne AccessDataSource som source for din repeater. Alt dette gør det samme som du kan gøre per håndkraft vha. datasets + mere.

Hvis du insisterer på datasets så sig til, så kan de også bakses sammen.
Avatar billede dragnor Juniormester
21. juni 2007 - 17:07 #8
Jeg bruge visual web developer, en del af visual studio. Men jeg er mega usikker på hvordan jeg gør. Jeg er ikke helt sikker på at jeg gør det rigtigt, specielt fordi når jeg bruger en AccessDataSource, så ser den helst at min access database ligge et sted på roden af mit website, men det kan den ikke hos min udbyder, der ligger den udenfor www roden.
Avatar billede dragnor Juniormester
21. juni 2007 - 17:17 #9
neoman det virker nu, men nu er der kun forbindelsen til min database der driller :-) Samt at jeg opdagede at det var vigtigt at jeg gemmen min url til billedefilen med et ~ tegn før /billeder/2007/ osv
Avatar billede dragnor Juniormester
21. juni 2007 - 17:19 #10
Men hvordan laver jeg denne del i c# koden? Den skal nemlig kun ligge noget ind i datasourcen når nogen har valgt noget fra en dropdownbox

<asp:AccessDataSource ID="AccessDataSource2" runat="server" DataFile="~/DB.mdb" SelectCommand="SELECT [Notes], [Filename] FROM [Billeder]">
                            </asp:AccessDataSource>
Avatar billede dragnor Juniormester
21. juni 2007 - 17:21 #11
ikke noget problem skrev bare hele stien C:\\Inetpub\\databases\\DB.mdb så virkede det :-) sejt!!!!
Avatar billede neoman Novice
21. juni 2007 - 17:27 #12
ConfigureDataSource (på datasourcens smart tag)

På den skærm hvor du vælger hvilekn tabel du skal have data fra, er der en knap "Where"

Tryk på den. Hmm . nu er mit skidt gået ned...så kan ikke kigge.. anyway,

De steder i din SQL sætning hvor der skal være en parameter indsætter du et spørgsmålstegn (eller i query-builderen sætter du "=?" (uden "") udfor navnet på den kolonne som skal specificeres med en parameter

I den før omtalte skærm kan du angive, at værdien skal komme fra en control - her vælger du blot navnet på din ddl.
Avatar billede neoman Novice
21. juni 2007 - 17:28 #13
og huske at trykke ADD i bunden af skærmen til højre - ellers gkemmer den at huske den betingelse.
Avatar billede dragnor Juniormester
21. juni 2007 - 17:43 #14
okay, nu ser koden sådan her ud

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="DB">
<ItemTemplate>
<asp:Image ID="img" runat="server" Width="600px" Height="400px" ImageUrl='<%#Eval("Filename") %>' />
<asp:Label ID="lblText" runat="server" Text='<%#Eval("Notes") %>'></asp:Label>
<br />
</ItemTemplate>
</asp:Repeater>
<asp:AccessDataSource ID="DB" runat="server" DataFile="C:\\Inetpub\\databases\\DB.mdb"
SelectCommand="SELECT * FROM [Billeder] WHERE (([Years] = ?) AND ([Events] = ?))">
<SelectParameters>
<asp:Parameter DefaultValue="" Name="Years" Type="String" />
<asp:Parameter Name="Events" Type="String" />
</SelectParameters>
</asp:AccessDataSource>


Nu mangler jeg bare at de 2 parametre som der er spørgsmål tegn ud for er hvad der svare til c# kode years.Text og theEvent.Text hvordan får ejg det med?
Avatar billede neoman Novice
21. juni 2007 - 17:51 #15
enten som jeg beskrev for dig 17:27:49 eller ved at smide din liste af select parameters ud, og erstatte dem med passende control parameters som disse her:

<asp:ControlParameter ControlID="navnpådinddl" Name="years" PropertyName="Text"
                    Type="String" />

<asp:ControlParameter ControlID="navnpådinddleller textboxeller whatever" Name="Events" PropertyName="Text"
                    Type="String" />
Avatar billede dragnor Juniormester
21. juni 2007 - 18:04 #16
Den er jeg med på, men hvad med
"SELECT * FROM [Billeder] WHERE (([Years] = ?) AND ([Events] = ?))">

Hvordan finder den ud f at det er de 2 værdier den skal bruge altså de 2 controlparametere?
Avatar billede dragnor Juniormester
21. juni 2007 - 18:06 #17
glem det ejg skrev, det her virker :-) :-) :-) !!!!!!!!!!!!!!!!!!!!!!

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="DB">
                                <ItemTemplate>
                                    <asp:Image ID="img" runat="server" Width="600px" Height="400px" ImageUrl='<%#Eval("Filename") %>' />
                                    <asp:Label ID="lblText" runat="server" Text='<%#Eval("Notes") %>'></asp:Label>
                                    <br />
                                </ItemTemplate>
                            </asp:Repeater>
                            <asp:AccessDataSource ID="DB" runat="server" DataFile="C:\\Inetpub\\databases\\DB.mdb"
                                SelectCommand="SELECT Id, Years, Events, Notes, Filename FROM Billeder WHERE (Years = StrYear) AND (Events = StrEvent)">
                                <SelectParameters>
                                    <asp:ControlParameter ControlID="years" Name="StrYear" PropertyName="Text" Type="String" />
                                    <asp:ControlParameter ControlID="theEvent" Name="StrEvent" PropertyName="Text" Type="String" />
                                </SelectParameters>
                            </asp:AccessDataSource>
Avatar billede dragnor Juniormester
21. juni 2007 - 18:09 #18
1000 tak for hjælpen neoman de point har du uden tvivl fortjent, især med den tålmodighed du har med mig :-)
Avatar billede neoman Novice
21. juni 2007 - 18:10 #19
selv tak - men husk lige dr_chaos - halvdelen af denne løsning bruger jo hans opskrift :)
Avatar billede dragnor Juniormester
21. juni 2007 - 18:20 #20
Ham glemmer jeg ikke
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