您的位置:首页 > 其它

省市县三级联动(第二种方法)

2013-03-11 20:33 323 查看
以下为省市县的数据表,如图所示,图中只是数据表的一部分,要完成省市县三级联动。首先在数据库中建立好下面的数据表:







在程序的前台加上三个下拉文本框,分别为省市县,如图所示:



namespace ThreeClass

{

public partial class Demo1 : System.Web.UI.Page

{

string connstr = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;

protected void Page_Load(object sender, EventArgs e)

{

if(!IsPostBack)

{

DataBd();

}

}

private void DataBd()////这一部分是写的关于省份的部分

{

using (SqlConnection conn = new SqlConnection(connstr))

{

conn.Open();

using (SqlCommand cmd = conn.CreateCommand())

{

cmd.CommandText = "SELECT * FROM province";

DataSet dt = new DataSet();

SqlDataAdapter adapter = new SqlDataAdapter(cmd);

adapter.Fill(dt);

cmd.ExecuteNonQuery();

for (int i = 0; i < dt.Tables[0].Rows.Count; i++)

{

string name = dt.Tables[0].Rows[i]["province"].ToString();

string id = dt.Tables[0].Rows[i]["provinceID"].ToString();

ListItem list = new ListItem(name, id);

ddlprovince.Items.Add(list);

}

}

}

}

//////开始选择市

protected void ddlprovince_SelectedIndexChanged(object sender, EventArgs e)

{

ddlcity.Items.Clear();////每次加载前清空一下

int pid = Convert.ToInt32(ddlprovince.SelectedValue);////吧省份的下拉文本框中选中的值传给市

using (SqlConnection conn = new SqlConnection(connstr))

{

conn.Open();

using (SqlCommand cmd = conn.CreateCommand())

{

cmd.CommandText = "SELECT * FROM city WHERE
father=@father";

cmd.Parameters.AddWithValue("@father",pid);

DataSet dt = new DataSet();

SqlDataAdapter adapter = new SqlDataAdapter(cmd);

adapter.Fill(dt);

cmd.ExecuteNonQuery();

for (int i = 0; i < dt.Tables[0].Rows.Count; i++)

{

string name = dt.Tables[0].Rows[i]["city"].ToString();

string id = dt.Tables[0].Rows[i]["cityId"].ToString();

ListItem list = new ListItem(name, id);

ddlcity.Items.Add(list);

}

}

}

}

///////开始选择县

protected void ddlcity_SelectedIndexChanged(object sender, EventArgs e)

{

ddlarea.Items.Clear();

int pid = Convert.ToInt32(ddlcity.SelectedValue);

using (SqlConnection conn = new SqlConnection(connstr))

{

conn.Open();

using (SqlCommand cmd = conn.CreateCommand())

{

cmd.CommandText = "SELECT * FROM area WHERE
father=@area";

cmd.Parameters.AddWithValue("@area", pid);

DataSet dt = new DataSet();

SqlDataAdapter adapter = new SqlDataAdapter(cmd);

adapter.Fill(dt);

cmd.ExecuteNonQuery();

for (int i = 0; i < dt.Tables[0].Rows.Count; i++)

{

string name = dt.Tables[0].Rows[i]["area"].ToString();

ListItem list = new ListItem(name);

ddlarea.Items.Add(list);

}

}

}

}

}

}

程序运行结果如下:



还有一种简单的方法,但是我还没弄出来,弄到市,县老是不出,有待继续。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: