Переменные сеанса нарушаются несвязанным методом - PullRequest
0 голосов
/ 31 января 2012

У меня есть проблема, которая совершенно ошеломляет меня, поскольку это не имеет абсолютно никакого смысла.Хорошо, как я понимаю и использовал в прошлом, чтобы передавать переменные с одной страницы на другую через сеанс, вы просто говорите:

Session ["variableName"] = значение;

Затем, чтобы использовать его на принимающей странице, это что-то вроде:

string container = Session ["variableName"]. ToString ();

Верно?Денди.В моем коде (по крайней мере, в этом конкретном приложении, во всяком случае) я обнаружил, что не могу установить переменные сеанса, если у меня есть метод в моей page_load кода::

    protected void Page_Load(object sender, EventArgs e)
    {
        Session.Add("values", "It Worked");
        LoadAvailableItems();        
    }

Thisприведет к тому, что приложение не передаст переменную на следующую страницу.Однако, если я удалю метод LoadAvailableItems (), он будет работать нормально.Итак, теперь вы спросите меня: «Хорошо, покажите нам, что внутри этого метода».Это просто тестовое соединение для запуска фиктивных данных для элемента управления:

//test connection DELETE ME
        string connString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
            + Server.MapPath("App_Code/temp/cokeDb.mdb") + ";Persist Security Info=False;";
        OleDbConnection conn = new OleDbConnection(connString);
        string sql = "select docNum, docName from lut_docs order by docNum";
        OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
        DataSet ds = new DataSet();

        conn.Open();
        da.Fill(ds);
        conn.Close();

        cblstAvailableItems.DataSource = ds;
        cblstAvailableItems.DataTextField = "docName";
        cblstAvailableItems.DataValueField = "docNum";
        cblstAvailableItems.DataBind();
        //end test connection

Из того, что мне удалось сузить, до комментирования блоков и запуска приложения, я думаю, что оно связано с этим блоком.:

conn.Open();
da.Fill(ds);
conn.Close();

Теперь, ПОЧЕМУ это вызывает проблемы, я не понимаю ни малейшего.Если кто-то может мне это объяснить, я могу воздержаться от того, чтобы просунуть голову в стену.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...