私のアプリケーションでは、次のようなメインクエリを作成しました
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()
しかし、キャッシュされたデータでそれを行う方法がわかりません。
私を助けてください!ありがとうございました!!!