三級聯動代碼優化

三級連動前臺代碼:
<div>
      
        省:
        <asp:DropDownList ID="ddlPromary" runat="server" AutoPostBack="True" Height="16px" OnSelectedIndexChanged="ddlPromary_SelectedIndexChanged" Width="118px">
        </asp:DropDownList>
& nbsp;&nbsp; 市:<asp:DropDownList ID="ddlCity" runat="server" AutoPostBack="True" Height="16px" OnSelectedIndexChanged="ddlCity_SelectedIndexChanged" Width="118px">
        </asp:DropDownList>
& nbsp;&nbsp; 縣:&nbsp;
        <asp:DropDownList ID="ddlCount" runat="server" Height="16px" Width="118px">
        </asp:DropDownList>
      
    </div>


三級後臺代碼:
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //第一次加載的時候綁定ddlPromary控件的值
                 string sql = "select * from province";
                DataTable dt=ExecuteDataTable(sql);
                ddlPromary.DataSource = dt;
                ddlPromary.DataTextField = "province";
                ddlPromary.DataValueField = "provinceID";
                ddlPromary.DataBind();
            }
        }




        protected void ddlPromary_SelectedIndexChanged(object sender, EventArgs e)
        {
          
            ddlCity.Items.Clear();
            string sql = "select * from city where father=@id";
            DataTable dt = ExecuteDataTable(sql, new SqlParameter("@id",ddlPromary.SelectedValue.ToString()));
            ddlCity.DataSource = dt;
            ddlCity.DataTextField = "city";
            ddlCity.DataValueField = "cityID";
            ddlCity.DataBind();


        }


        protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e)
        {
            ddlCount.Items.Clear();
            string sql = "select * from area where father=@areaID";
            DataTable dt = ExecuteDataTable(sql, new SqlParameter("@areaID", ddlCity.SelectedValue.ToString()));
            ddlCount.DataSource = dt;
            ddlCount.DataTextField = "area";
            ddlCount.DataValueField = "areaID";
            ddlCount.DataBind();
        }


        //定義一個方法,傳入兩個參數,一個爲SQL語句,另一個是SQL語句的參數
        public static DataTable ExecuteDataTable(string sql, params SqlParameter[] pms)
        {
            string constr = @"data source=.;initial catalog=PromaryCityCount;user id=sa;password=111111;";
            SqlConnection conn = new SqlConnection(constr);
            conn.Open();
            SqlCommand cmd = conn.CreateCommand();


            cmd.CommandText = sql;
            if (pms != null)
            {
                cmd.Parameters.AddRange(pms);
            }
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            adapter.Fill(dt);
            return dt;
            conn.Close();
            conn.Dispose();
        }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章