0

私のアプリケーションでは、次のようなメインクエリを作成しました

 SqlDataAdapter cmd0 = new SqlDataAdapter(select a,b,c,d, from table1,sqlconn)

table1 は非常に巨大なテーブルであり、ユーザーが変更を加えるたびにデータベースを呼び出したくないため、このクエリをキャッシュしました。

        DataSet ds0 = new DataSet();
        cmd0.Fill(ds0);
        DataView source0 = new DataView(ds0.Tables[0]);
        DataTable dt0 = new DataTable();
        cmd0.Fill(dt0);
        Cache["data"] = ds0;

a と b の 2 つのドロップダウンリストがあります。キャッシュされた列 a を取得し、ドロップダウンリストでデータをバインドします

 //dropdown for a
        DataSet dataset_a = new DataSet();
        dataset_a = (DataSet)Cache["data"];
        DataView dataview_a = dataset_a.Tables[0].DefaultView;
        dataview_a.Sort = "a";
        DataTable datatable_a = dataview_a.ToTable(true, "a");
        ddla.DataSource = datatable_a;
        ddla.DataTextField = "a";
        ddla.DataValueField = "a";
        ddla.DataBind();

ここで、ddla で行ったのと同じ方法で、最初に b のドロップダウンリストにデータを入力しようとします

//dropdown for b
        DataSet dataset_b = new DataSet();
        dataset_b = (DataSet)Cache["data"];
        DataView dataview_b = dataset_b.Tables[0].DefaultView;
        dataview_b.Sort = "b";
        DataTable datatable_b = dataview_b.ToTable(true, "b");
        ddlb.DataSource = datatable_b;
        ddlb.DataTextField = "b";
        ddlb.DataValueField = "b";
        ddlb.DataBind();

ddla(a のドロップダウン リスト) で選択を変更すると、b のドロップダウン リストも変更されます。(ドロップダウンリストのカスケード)

だから基本的に私は次のようなクエリを起動したい:

Select b from table1 where a=ddla.SelectedItem.ToString()

しかし、キャッシュされたデータでそれを行う方法がわかりません。

私を助けてください!ありがとうございました!!!

4

1 に答える 1