1. #1
    wartaal's Avatar
    Registered
    02/02/05
    Posts
    880
    iTrader
    1 (100%)
    Mentioned
    1 Post(s)
    Reputation
    1/19

    Sessionvariable nemen foute waardes mee

    Hey,

    Wist niet goed of ik het hier moest posten, maargoed. Heb dus ene databaseconnectie die waarde ophaalt en daarna in een dropdownlist zet. Dan kan je daaruit kiezen en op de volgende pagina zou hij die moeten tonen.

    Nu, alsk ik DataSource gebruik, werkt het perfect, maar bij DataReaders toont hij op de volgende pagina steeds de 1e waarde in de lijst, welke je ook selecteert.

    Hier is mijn code:

    Connectie met database.
    Code:
    string connString =
                    "Provider=Microsoft.Jet.OLEDB.4.0;User ID=;Password=;" +
                    "Data Source=" + Server.MapPath("~/App_Data/randapparatuur.mdb") + ";";
    
    
                OleDbConnection conn = new OleDbConnection(connString);
    
                string sql = "SELECT LECTOREMAIL, LECTORNAAM, LECTORVOORNAAM FROM tblLector";
                OleDbCommand cmd = new OleDbCommand(sql, conn);
    
                string sql2 = "SELECT LOKAALNAAM, LOKAAL_ID FROM tblLokaal";
                OleDbCommand cmd2 = new OleDbCommand(sql2, conn);
    
                string sql3 = "SELECT LECTORNAAM, LECTORVOORNAAM FROM tblLector";
                OleDbCommand cmd3 = new OleDbCommand(sql3, conn);
    
                string sql4 = "SELECT MODEL, PRINTER_ID FROM tblPrinter";
                OleDbCommand cmd4 = new OleDbCommand(sql4, conn);
    
                conn.Open();
    
                OleDbDataReader reader = cmd.ExecuteReader();
                OleDbDataReader reader2 = cmd2.ExecuteReader();
                OleDbDataReader reader3 = cmd3.ExecuteReader();
                OleDbDataReader reader4 = cmd4.ExecuteReader();
    
    
    
                LectorList0.DataSource = reader;
                LectorList0.DataTextField = "LECTORNAAM";
                LectorList0.DataValueField = "LECTORVOORNAAM";
                LectorList0.DataBind();
    
                LokaalList.DataSource = reader2;
                LokaalList.DataTextField = "LOKAALNAAM";
                LokaalList.DataValueField = "LOKAAL_ID";
                LokaalList.DataBind();
    
                LectorList.DataSource = reader3;
                LectorList.DataTextField = "LECTORVOORNAAM";
                LectorList.DataValueField = "LECTORVOORNAAM";
                LectorList.DataBind();
    
                ModelList.DataSource = reader4;
                ModelList.DataTextField = "MODEL";
                ModelList.DataValueField = "PRINTER_ID";
                ModelList.DataBind();
    
    
    
    
                conn.Close();
    Mijn session variables:

    Code:
    protected void Button1_Click(object sender, EventArgs e)
            {
    Response.Redirect("Default2.aspx", false);
                    Session["Name"] = LectorList.SelectedValue.ToString();
                    Session["Name2"] = LectorList.SelectedItem.ToString();
                    Session["Surname"] = LectorList0.SelectedValue.ToString();
                    Session["Surname2"] = LectorList0.SelectedItem.ToString();
                    Session["Lokaal"] = LokaalList.SelectedValue.ToString();
                    Session["Lokaal2"] = LokaalList.SelectedItem.ToString();
                    Session["Model"] = ModelList.SelectedValue.ToString();
                    Session["Model2"] = ModelList.SelectedItem.ToString();
    }
    en op de volgende pagina
    Code:
    protected void Page_Load(object sender, EventArgs e)
            {
                if (Session["Name"] != null)
                 Label1.Text = Session["Name2"].ToString();
                Label2.Text = Session["Surname2"].ToString();
                Label3.Text = Session["Lokaal2"].ToString();
                Label4.Text = Session["Model2"].ToString();
                if (Session["Check1"] != null)
                    Label5.Text = Session["Check1"].ToString();
                if (Session["Check2"] != null)
                    Label6.Text = Session["Check2"].ToString();
                if (Label5.Text == "zwart/wit")
                {
                    if (Label6.Text == "kleur")
                    {
                        Label7.Text = " en ";
                    }
                }
    
            }
    Heb echt al vanalles geprobeerd... Het rare is dat het eerst wel werkte maar na mijn (!IsPostBack) er aan toe te voegen werkte het niet meer (zelfs al haal ik die weg). Heb alles ook es in nieuw project gezet, maar dat werkte ook niet

    Alvast bedankt voor de hulp!
    no votes   Reply With Quote Reply With Quote

  2. #2
    janlaureys9's Avatar
    Registered
    30/11/03
    Location
    Antwerpen
    Posts
    1,647
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/9
    Ik zou eerst mijn sessie aanpassen en dan pas redirecten eigenlijk.
    En dan maakt het ook helemaal niet meer uit dat die ene nou "elmer" heet...
    ALT + 84; ALT + 104; ALT + 101; ALT + 32; ALT + 71; ALT + 97; ALT + 109; ALT + 101
    no votes   Reply With Quote Reply With Quote

  3. #3
    wartaal's Avatar
    Registered
    02/02/05
    Posts
    880
    iTrader
    1 (100%)
    Mentioned
    1 Post(s)
    Reputation
    1/19
    Waar moet ik mijn redirect dan zetten? buiten mijn if-statement?

    Nuja, geprobeerd en het verandert niks.

    edit: en met de Datasources werkt dit wel perfect, dusja.
    no votes   Reply With Quote Reply With Quote

  4. #4
    Drone's Avatar
    Registered
    28/05/03
    Location
    bmb
    Posts
    744
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    15/15
    Zoals Janlaureys9 zegt de code na de redirect wordt niet meer uitgevoerd.
    no votes   Reply With Quote Reply With Quote

  5. #5
    wartaal's Avatar
    Registered
    02/02/05
    Posts
    880
    iTrader
    1 (100%)
    Mentioned
    1 Post(s)
    Reputation
    1/19
    Jawel hoor, daarom staat die false daar. Hij neemt trouwens de session variables die niet van de database komen wel mee. Daarom vind ik het zo vreemd dat het niet wil werken.

    Heb het trouwens geprobeerd om ergens anders te zetten, geeft nog steeds hetzelfde probleem.
    no votes   Reply With Quote Reply With Quote

  6. #6
    MiniJeffrey's Avatar
    Registered
    24/10/07
    Location
    Harelbeke
    Posts
    7,758
    iTrader
    0
    Mentioned
    2 Post(s)
    Reputation
    1/446
    gebruik if(!page.isPostback) om je dropdowns op te vullen en zet autopostback eens op true bij je dropdowns en probeer dan nog eens?

    En een .selectedValue is normaal al een string dacht ik dus je toString(); is daar niet nodig. En waarom doe je selectedItem bij de andere? Bedoel je niet selectedText?

    Je gebruikt ook wel veel Sessions he, waarom al die variabelen niet in een object stoppen en dat in je session stoppen?

    ik zou in VS eens debuggen vanaf dat je je queries uitvoert en zo eerst kijken wat het probleem is... kan namelijk aan vanalles liggen
    Last edited by MiniJeffrey; 26-03-2010 at 21:10.
    Let us pray for all the fools that be
    no votes   Reply With Quote Reply With Quote

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in