Как сохранить данные в сеансе и получить значения из сеанса в С#.net?
Хранение и получение данных из сеанса
Ответ 1
Добавить данные в сеанс:
DataTable Tissues = new DataTable();
Tissues = dal.returnTissues("TestID", "TestValue");// returnTissues("","") sample function for adding values
Session.Add("Tissues", Tissues);
Извлеките данные, относящиеся к сеансу:
DataTable Tissues = Session["Tissues"] as DataTable
или
DataTable Tissues = (DataTable)Session["Tissues"];
Ответ 2
это просто как примечание, но в целом то, что вы хотите сделать, это сохранить размер на сеансе и ViewState маленьким. Обычно я просто храню идентификаторы и небольшие количества пакетов в сеансе и ViewState.
например, если вы хотите передать большие куски данных с одной страницы на другую, вы можете сохранить идентификатор в строке запроса и использовать этот идентификатор для получения данных из базы данных или файла.
PS: но, как я уже сказал, это может быть совершенно не связано с вашим запросом:)
Ответ 3
Чтобы сохранить DataTable
в сеансе:
DataTable dtTest = new DataTable();
Session["dtTest"] = dtTest;
Получить DataTable
из сеанса:
DataTable dt = (DataTable) Session["dtTest"];
Ответ 4
Вы можете сделать это так, но сохранение объекта DataSet в сеансе не очень эффективно. Если у вас есть веб-приложение с большим количеством пользователей, он будет очень быстро засорять память вашего сервера.
Если вам действительно нужно это сделать, я предлагаю удалить его из сеанса, как только вам не понадобится DataSet.
Ответ 5
Простое решение для очень распространенной проблемы
// DECLARATION
HttpContext context = HttpContext.Current;
DataTable dt_ShoppingBasket = context.Session["Shopping_Basket"] as DataTable;
// TRY TO ADD rows with the info into the DataTable
try
{
// Add new Serial Code into DataTable dt_ShoppingBasket
dt_ShoppingBasket.Rows.Add(new_SerialCode.ToString());
// Assigns new DataTable to Session["Shopping_Basket"]
context.Session["Shopping_Basket"] = dt_ShoppingBasket;
}
catch (Exception)
{
// IF FAIL (EMPTY OR DOESN'T EXIST) -
// Create new Instance,
DataTable dt_ShoppingBasket= new DataTable();
// Add column and Row with the info
dt_ShoppingBasket.Columns.Add("Serial");
dt_ShoppingBasket.Rows.Add(new_SerialCode.ToString());
// Assigns new DataTable to Session["Shopping_Basket"]
context.Session["Shopping_Basket"] = dt_PanierCommande;
}
// PRINT TESTS
DataTable dt_To_Print = context.Session["Shopping_Basket"] as DataTable;
foreach (DataRow row in dt_To_Print.Rows)
{
foreach (var item in row.ItemArray)
{
Debug.WriteLine("DATATABLE IN SESSION: " + item);
}
}