Archief - Sessionvariable nemen foute waardes mee

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

wartaal

Legacy Member
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!

janlaureys9

Legacy Member
Ik zou eerst mijn sessie aanpassen en dan pas redirecten eigenlijk.

wartaal

Legacy Member
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.

Drone

Legacy Member
Zoals Janlaureys9 zegt de code na de redirect wordt niet meer uitgevoerd.

wartaal

Legacy Member
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.

MiniJeffrey

Legacy Member
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 :p
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan