Avatar billede mjdigital Nybegynder
21. januar 2009 - 18:21 Der er 5 kommentarer og
1 løsning

Avanceret Søgning Med Sessions

Hey Guys :)

Dette er et udkast på en avanceret søgning jeg prøver at udvikle.


Første kode er siden som laver min Session og sender den videre til en side hvor søge resultater skal vises. 

        var grunde = "";
        var minPris = "0";
        var maxPris = "9999999";



if (CBFritidG.Checked)
        {
            if (grunde == "")
            {
                grunde = "Fritidsgrund";
            }
            else
            {
                grunde += " OR WHERE BoligType = Fritidsgrund";
            }
        }

     

        if (CBHelG.Checked)
        {
            if (grunde == "")
            {
                grunde = "Helårsgrund";
            }
            else
            {
         
                grunde += " OR WHERE BoligType = Helårsgrund";
            }
        }

        Session["minPris"] = minPris;
        Session["maxPris"] = maxPris;
        Session["grunde"] = grunde;



Og denne side skal så vise resultatet som er baseret på hvad min session indeholder..

    <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
    <ItemTemplate>
        <asp:Label ID="Label1" runat="server" Text='<%# Eval("pris") %>'></asp:Label>
    </ItemTemplate>
    </asp:Repeater>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server"
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
        SelectCommand="SELECT * FROM [tblBolig] WHERE ([BoligType] = @BoligType)" >
        <SelectParameters>
            <asp:SessionParameter DefaultValue="" Name="BoligType" SessionField="grunde"
                Type="String" />
        </SelectParameters>
    </asp:SqlDataSource>


Mit problem er at når jeg tjekker f.eks. 1 checkbox tilføjer den et parameter.. Og når jeg så vælger 2nd checkbox skal den så tilføje lidt ekstra til min Session for at søge på flere muligheder, problemet ligger i at siden med resultaterne kun virker hvis jeg har valgt 1 checkbox.. Koden den tilføjer når jeg checker den anden checkbox ødelægger det hele.
Avatar billede mjdigital Nybegynder
21. januar 2009 - 18:58 #1
En eller anden må da have en ide :D Har også prøvet at binde dataen direkte til min repeator

        DataAccessLayer dal = new DataAccessLayer();
        dal.AddParameter("@grunde", HttpContext.Current.Session["grunde"], SqlDbType.VarChar);
        dal.AddParameter("@MinPris", HttpContext.Current.Session["minPris"], SqlDbType.Int);
        dal.AddParameter("@MaxPris", HttpContext.Current.Session["maxPris"], SqlDbType.Int);
        Repeater1.DataSource = dal.ExecuteDataTable("SELECT * FROM tblBolig WHERE BoligType = @grunde AND pris >=@MinPris AND pris <=@MaxPris");
        Repeater1.DataBind();

Dog stadig samme resultat
Avatar billede hmortensen Nybegynder
21. januar 2009 - 19:55 #2
SQL syntaks:
SELECT * FROM tabel WHERE x = y OR z = w
og ikke
SELECT * FROM tabel WHERE x = y OR WHERE z = w
Avatar billede mjdigital Nybegynder
21. januar 2009 - 19:58 #3
Hejsa hmortensen :) Har jeg også prøve og stadig samme fejl :( Har prøvet at køre min SQL og virker helt fint hvis jeg gør det manuelt..
Avatar billede hmortensen Nybegynder
21. januar 2009 - 20:03 #4
Hvordan blir din SQL sætning?
Avatar billede mjdigital Nybegynder
21. januar 2009 - 20:11 #5
Hejsa igen hmortensen :) fandt min fejl.. Problemet var mit DataLayer der ikke syntes om min Session havde 2 værdier.. så alt jeg gjorde var at skulle selve mit opkald til min SQL server og smed mine værdier ind der ved hjælp af

"SELECT * FROM tblBolig WHERE BoligType = " + sql +" AND pris >=@MinPris AND pris <=@MaxPris" :)
Avatar billede mjdigital Nybegynder
21. januar 2009 - 20:11 #6
Løst
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