在我的应用程序中,我编写了一个主查询,例如
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;
我有 2 个 a 和 b 的下拉列表。我得到缓存列 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(dropdownlist for a) 中更改我的选择时,我希望 b 的下拉列表也可以更改。(级联下拉列表)
所以基本上我想触发这样的查询:
Select b from table1 where a=ddla.SelectedItem.ToString()
但我不知道如何处理缓存的数据。
请帮我!谢谢!!!