1

asp.net ボートに乗り込んだばかりです。

ページネーションを使用して(データセットをデータソースとして)グリッドビューに最初にいくつかのデータを表示するasp.netページがあります。また、挿入または更新を実行するためのテキストボックスはほとんどありません (グリッドビュー自体の編集/挿入オプションについて尋ねないでください!!)。

データセットを保存する適切な場所に関するガイダンスはほとんど必要ありません。

ビューステートを使用してデータセットを保存する単純化されたコードビハインド ファイルを投稿していますが、これは好きではありません。

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;

}
}

ビューステートとは別に、データセットを保存するための最良の選択は何ですか??...

  1. 毎回データベースからデータを取得する

  2. すべてのページのすべてのデータセットに共通のセッション変数 Session["DataSet"] を使用します (同じシナリオのページが他にもいくつかあります)。

  3. キャッシュを使用

セッションまたはキャッシュを含めたのは、ユーザーがデータを挿入または更新するのではなく、データを表示しているだけである可能性が高いためです。

また、GridBind() を呼び出す代わりにボタン クリック イベントで、データベースからデータを再度取得するのではなく、viewstate でデータセットを更新しただけでも問題ありませんか?

お気に入り -

  DataSet ds = ViewSate["DataSet"] (or) Session["DataSet"] (or) Cache["DataSet"]; 
  (perform updations or insertions upon the dataset)
  Session(or)Cache(or)ViewState["DataSet"] = ds;
4

2 に答える 2

5

一般的:

  • データを最新にする必要がある場合は、毎回取得します
  • 古いデータに問題がない場合 (または頻繁に変更されない場合):
    • ユーザーごとにデータが異なる場合は、Session
    • データがすべてのユーザーで同じCacheである場合は、またはを使用します。Application

ユーザーごとに大量のデータを保存する場合は、セッションを使用しないでください。メモリが不足する可能性があります。

于 2012-10-29T11:55:52.463 に答える