0

私の質問は、button_2がbutton_1で作成されたデータテーブルに保存されたデータを呼び出し/使用できるかどうかです。言わせて

void Button1_Click(Object sender, EventArgs e)
{
  //some code to fill the datatable
}  

これでボタン1のコードが完成し、動作します。私が抱えている唯一の問題は、ボタン_1からボタン_2にデータテーブルを送信する方法がわからないことです。この方法で、ボタン_2はデータテーブルで同じデータストアを使用できます。 、asp.net、および Visual Studio を使用しない。

4

6 に答える 6

1

関数の外で DataTable を宣言します

DataTable _myDataTable = new DataTable

void Button1_Click(Object sender, EventArgs e)
{
  //some code to fill the datatable
}  
于 2012-07-04T12:13:18.710 に答える
1

流れを考えてみようと思います。2 つのボタンが同じことを行う場合、なぜ 2 つのボタンが必要なのですか?

2つのボタンが異なる動作をするが、同じデータを使用する場合、このようにすることができます。データテーブルをメモリに保存できます。アクセスします。

   DataTable _myDataTable = new DataTable();

   //get Method

    public DataTable FillDatatable(DataTable _myDataTable)
    {
    return _myDataTable;
    }

ボタン2クリックで、その無効性をチェックします。このような 。

if(_myDataTable !=NULL)
{
  If(_myDataTable.Rows.Count > 0 ) 
   //then do some fun  with that data 
}
于 2012-07-04T12:20:31.467 に答える
1

のイベント ハンドラーでデータがフェッチされ、 のイベント ハンドラーでButton1使用できるようにする必要があるとButton2述べているため、ポスト バックに耐えられるようにデータ テーブルを永続化する必要があります。

いくつかの可能性があります:

  • SerializableViewstate (オブジェクトがである限り、動作しDataTableているようです)
  • セッション (セッションを使用する場合)
  • アプリケーション スコープ (Application["yourKeyName"] = dbTable;)
  • 適切なクラスの静的メンバー
  • サーバーキャッシュ

または、データをフェッチするためのデータベース操作が「重く」ない場合は、必要なときにそこからロードすることができます。

状態管理に関する詳細については、以下を参照してください。

http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx

編集:より具体的な推奨事項を提供します。DataTableこのようにセッションに保存してみてください

Session["preBuiltDataTable"] = theTable;

Button1_Click の最後。次に、それへの参照を取得します

DataTable tableFromB1Click = Session["preBuiltDataTable"] as DataTable;
if (tableFromB1Click != null)
{
    // do stuff here
}

Button2_Click で。

于 2012-07-04T14:09:22.350 に答える
0

1つの関数を作成するとします

public void fgh()
 {
    //write down your database code such as
    using(con=new SqlConnection(your connection string))
    { 
      cnn=new SqlCommand( your sql command);
      cnn.Connection=con;
      using(ds=new Dataset())
        {
          con.Open();
          da.Fill(ds);
       }
  }
}

これで関数ができました。別のボタンを呼び出してください。

于 2012-07-04T12:14:28.397 に答える
0

次のようなViewStateにDataTableを割り当てます

protected void Button1_Click(Object sender, EventArgs e)
{
    ViewState["DT"] = dt;              // dt is the DataTable
} 

次のようにデータテーブルを使用します。

protected void Button2_Click(Object sender, EventArgs e)
{
    DataTable dt2 = (DataTable)ViewState["DT"];              // dt is the DataTable
} 
于 2012-07-04T12:17:51.557 に答える
0

DataTable をパラメーターとして受け入れるデータ ストレージ用の別の関数 [SaveDataTable(DataTable dt)] を作成し、button1 と button2 の両方のクリック関数から呼び出します。

これがお役に立てば幸いです。ハッピーコーディング!!

于 2012-07-04T12:07:51.323 に答える