Avatar billede dafox Nybegynder
10. april 2007 - 16:36 Der er 12 kommentarer

querystring virker ikke

Hey, jeg har et problem med min request.querystring

jeg har en masterpage med mainlinks som alle har en querystring(category) knyttet til dem, så er meningen at jeg skal ha hentet nogle underlinks ud på sider som default.aspx og tryk.aspx,
alt efter hvilket link jeg trykker på...   

problemet er så,  den skriver "der er ikke angivet nogen verdi for en eller flere krævende parametre" når jeg bruger request.querystring("Category")   
men virker hvis jeg bruger request.querystring("ID")  hvor den så underligt nok ikke henter noget data ud...  nogen der kan se hvad der er galt ?

koden er følgende:

Tryk.aspx.cs

    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["category"] == null)
        {
            /* hvis der ikke er noget i querystring["cat"]  kører den denne sql string */
            OleDbConnection con = new OleDbConnection("Provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath("App_Data/GP-TrykDatabase.mdb"));
            OleDbDataAdapter adp = new OleDbDataAdapter("select * from tblindhold where fldid=2", con);
            DataSet dst = new DataSet();

            adp.Fill(dst);
            foreach (DataRow row in dst.Tables[0].Rows)
            {
                lbloutput.Text += "<b>" + row["fldoverskrift"] + "</b><br/>" + row["fldtekst"];
            }
        }
        else
        {
            /*Main tekst overskrift og tekst til siden */
            OleDbConnection con = new OleDbConnection("Provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath("App_Data/GP-TrykDatabase.mdb"));
            OleDbDataAdapter adp = new OleDbDataAdapter("select * from tblindhold where fldid=2", con);
            DataSet dst = new DataSet();

            adp.Fill(dst);
            foreach (DataRow row in dst.Tables[0].Rows)
            {
                lbloutput.Text += "<b>" + row["fldoverskrift"] + "</b><br/>" + row["fldtekst"];
            }

            /* underlinks blir trukket ud alt efter hvilket link man har trykket på */
            OleDbConnection underlinkcon = new OleDbConnection("Provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath("App_Data/GP-TrykDatabase.mdb"));
            OleDbDataAdapter underlinkadp = new OleDbDataAdapter("select * from tblunderlinks where fldunderlinkcat=" + Request.QueryString["category"], underlinkcon);
            DataSet underlinkdst = new DataSet();

            underlinkadp.Fill(underlinkdst);
            foreach (DataRow row in underlinkdst.Tables[0].Rows)
            {
                lblunderlinks.Text += row["fldlinktekst"];
            }
        }
    }


Forside.master.cs

    protected void Page_Load(object sender, EventArgs e)
    {
            Page.Title = "GP-Tryk";

            OleDbConnection con = new OleDbConnection("Provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath("App_Data/GP-TrykDatabase.mdb"));
            OleDbDataAdapter adp = new OleDbDataAdapter("select * from tblindhold", con);
            DataSet dst = new DataSet();

            adp.Fill(dst);
            foreach (DataRow row in dst.Tables[0].Rows)
            {
                lbltoplinks.Text += "<a href='" + row["fldlinkdestination"].ToString() + "?category=" + row["fldlinktekst"] + "'>" + row["fldlinktekst"].ToString() + "</a> - ";
            }
    }
Avatar billede kalp Novice
10. april 2007 - 16:50 #1
prøv med bare

if (Request["category"] == null)
Avatar billede dafox Nybegynder
10. april 2007 - 18:50 #2
det ændrer intet...
Avatar billede kalp Novice
10. april 2007 - 19:10 #3
har du udskrevet indholdet af category for at se at den ikke er tom?
Avatar billede dafox Nybegynder
10. april 2007 - 19:49 #4
ja har prøvet i et seperat dokument at tage det ud fra databasen, det virker skam fint...
Avatar billede dafox Nybegynder
10. april 2007 - 21:24 #5
ingen der har en forklaring ?
Avatar billede neoman Novice
10. april 2007 - 22:15 #6
Det tyder på der ikke er noget i din query string som hedder category . Er der noget andet som trigger din Tryk.aspx side fra din master page ? Du kunne kigge på hvad Request.Form("__EVENTTARGET").ToString indeholder - måske er der en anden knap som trigger siden og derfor er der ikke nogen request.string med ? Du kunne lige checke om request.querystring("category")) overhoved eksisterer, inden du prøver at få fat i en værdi fra den.
Avatar billede dafox Nybegynder
10. april 2007 - 22:40 #7
det virker hvis jeg bruger tal i mine request.querystrings men ikke hvis jeg bruger tekst :S

altså så i toppen af browseren står

tryk.aspx?category=2  og ikke  tryk.aspx?category=tryksager    nogen der ved hvorfor det ikke virker med tekst ?
Avatar billede neoman Novice
10. april 2007 - 22:51 #8
lbltoplinks.Text += "<a href='" + row["fldlinkdestination"].ToString() + "?category=" + row["fldlinktekst"] + "'>" + row["fldlinktekst"].ToString() + "</a> - ";

Hvad med row["fldlinktekst"].ToString() i stedet for row["fldlinktekst"] efter "?category...
Avatar billede dafox Nybegynder
10. april 2007 - 22:59 #9
den har jeg nok ikke prøvet, jeg prøver den lige imorgen, skal til at i seng så jeg kan være frisk til endnu en arbejdsdag...
Avatar billede dafox Nybegynder
10. april 2007 - 23:36 #10
prøvede lige, kunne ikke lade være,  men det virkede ikke...  andre forslag ?
Avatar billede kalp Novice
11. april 2007 - 00:03 #11
hvordan ser din querystring ud? i url'en?

måske har du sat den forkert sammen?

f.eks

www.url.dk/default.aspx?id=xx&navn=xx

den er korrekt..

www.url.dk/default.aspx?id=xx?navn=xx

den er forkert... men den vil ikke lave en fejl så det kan vel godt være sådan en dum ting?
Avatar billede dafox Nybegynder
11. april 2007 - 00:21 #12
øøøh jeg har ikke to i min querystring...

den er bare tryk.aspx?category= og så min værdi
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