剛登上asp.net船。存儲數據集的位置? - ASP.NET中的Session或Cache
我有一個asp.net頁面,最初顯示一些gridview與分頁(與數據集作爲其數據源)的數據。而且,有幾個文本框來執行插入或更新(不要問gridview本身的編輯/插入選項!!)。
我需要很少的關於存儲數據集的正確位置的指導。
我發佈簡化的代碼隱藏文件,它使用viewstate來存儲數據集,我不喜歡。
enter code here
class xyx : Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridBind();
}
}
protected void InsertUpdateButton_Click(object sender, EventArgs e)
{
1.perform insert or update data in the database
2.GridBind();
}
protected void GridView1_PageIndexChanged(object sender, EventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.SelectedIndex = -1;
GridView1.DataSource = (DataSet)ViewState["DataSet"];
GridView1.DataBind();
}
private void GridBind()
{
DataSet ds = getDataFromDataBase();
GridwView1.DataSource = ds;
GridView1.DataBind();
ViewState["DataSet"] = ds;
}
}
現在從視圖狀態分開,什麼是存儲數據集的最佳選擇?? ...
從數據庫每次
使用常見的會話變量會話獲得數據[「DataSet」]爲所有頁面上的所有數據集(我有一些其他頁面具有相同的場景)
使用高速緩存
我包括會話或緩存,因爲它可能是用戶可能只是查看數據而不是插入或更新。
此外,在按鈕單擊事件,而不是調用GridBind(),它是好的,如果我只是更新視圖狀態的數據集,而不是從數據庫中再次獲取數據?
像 -
DataSet ds = ViewSate["DataSet"] (or) Session["DataSet"] (or) Cache["DataSet"];
(perform updations or insertions upon the dataset)
Session(or)Cache(or)ViewState["DataSet"] = ds;
可能的重複:http://stackoverflow.com/questions/12011416/should-i-use-session-cache-to-store-the-dataset-or-should-i-fetch-resh-from-the – Buzz
數據是否需要緩存? – asawyer
是的,數據集!!! .....挖苦? – user1247808