У меня есть проблема, которая совершенно ошеломляет меня, поскольку это не имеет абсолютно никакого смысла.Хорошо, как я понимаю и использовал в прошлом, чтобы передавать переменные с одной страницы на другую через сеанс, вы просто говорите:
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();
Теперь, ПОЧЕМУ это вызывает проблемы, я не понимаю ни малейшего.Если кто-то может мне это объяснить, я могу воздержаться от того, чтобы просунуть голову в стену.