百分求助: 优化一小段代码
按照用户所选择的城市ID,分别列出此城市下属的分区以及餐馆菜系类型。。
代码为:
Diqu.Items.Clear();
int d = int.Parse(Chengshi.SelectedItem.Value.ToString());
Diqu.Items.Insert(0, new ListItem("选择地区", ""));
FillDropDownList(0,d);
Caixi.Items.Clear();
int dc = int.Parse(Chengshi.SelectedItem.Value.ToString());
Caixi.Items.Insert(0, new ListItem("请选择菜系", ""));
FillDropDownList1(0,dc);
private void FillDropDownList(int depth, int categoryID )
{
SqlConnection connString=new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
string strSQL = "Select * From Chengshi Where ThreadID = " + categoryID.ToString();
SqlDataAdapter da = new SqlDataAdapter(strSQL, connString);
DataTable dt = new DataTable();
da.Fill(dt);
foreach(DataRow dr in dt.Rows)
{
int id = Convert.ToInt32(dr["CSid"]);
int parentid = Convert.ToInt32(dr["ThreadID"]);
string sep = new string(' ', depth);
sep += new string('-', depth);
ListItem li = new ListItem(sep + dr["Chengshi"].ToString(), id.ToString());
this.Diqu.Items.Add(li);
FillDropDownList(depth + 1, id);
}
connString.Close();
}
private void FillDropDownList1(int depth, int categoryID )
{
SqlConnection connString=new SqlConnection(ConfigurationSettings.AppSettings["connectionString"]);
string strSQL = "Select * From QY_Class Where CSID = " + categoryID.ToString() + " AND Lanmu = '餐馆'";
SqlDataAdapter da = new SqlDataAdapter(strSQL, connString);
DataTable dt = new DataTable();
da.Fill(dt);
foreach(DataRow dr in dt.Rows)
{
int id = Convert.ToInt32(dr["Cid"]);
int parentid = Convert.ToInt32(dr["ThreadID"]);
string sep = new string(' ', depth);
sep += new string('-', depth);
ListItem li = new ListItem(sep + dr["Cname"].ToString(), id.ToString());
this.Caixi.Items.Add(li);
FillDropDownList1(depth + 1, id);
}
connString.Close();
}
现在执行的结果是,如果两条都执行的话,页面反应效率就会很慢。而且CPU高上升至100%,如果单独执行一条就正常,没问题。。
求大家帮忙优化一下代码。
能否合并成一条执行,或者写成类来代调。
新手不懂,请大家多指点一下。

