全国省市数据库的引用来自网上查询,故省略建立数据库的过程。参考:http://www.programfan.com/blog/article.asp?id=28128
页面建立:(*.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="ShengShi_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>全国省市</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="Pddl" runat="server" AutoPostBack="True" Height="35px"
onselectedindexchanged="Pddl_SelectedIndexChanged" Width="165px">
<asp:ListItem>未选择</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="Cddl" runat="server" Height="35px" Width="165px">
<asp:ListItem>未选择</asp:ListItem>
</asp:DropDownList>
</div>
</form>
</body>
</html>
后台代码:(*.aspx.cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
public partial class ShengShi_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)//只是初次加载页面的时候才执行下面代码。
{
string sqlcon = ConfigurationManager.ConnectionStrings["ProDBConn"].ConnectionString;//通过配置web.config文件,获得连接字符串:<add name="ProDBConn" connectionString="Data Source=ZJK-PC;Initial Catalog=ProvincesDB;;User ID=sa;Password=123456" providerName="System.Data.SqlClient"/>,引用using System.Configuration;
using (SqlConnection conn = new SqlConnection(sqlcon))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from promary";
using (SqlDataReader datareader = cmd.ExecuteReader())
{
while (datareader.Read())//读取数据库的proName
{
string proName = datareader.GetString(datareader.GetOrdinal("proName"));
Pddl.Items.Add(proName);
}
}
}
}
}
}
private void Sqlfun(int id)//通过传入的proID,向DropDownList添加项
{
string sqlcon = ConfigurationManager.ConnectionStrings["ProDBConn"].ConnectionString;
using (SqlConnection conn = new SqlConnection(sqlcon))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from city where proID=@proId order by cityID";
cmd.Parameters.Add(new SqlParameter("proId",id));
using (SqlDataReader datareader = cmd.ExecuteReader())
{
while (datareader.Read())
{
string proName = datareader.GetString(datareader.GetOrdinal("cityName"));
Cddl.Items.Add(proName);
}
}
}
}
}
protected void Pddl_SelectedIndexChanged(object sender, EventArgs e)
{
Cddl.Items.Clear();
string proName = Pddl.SelectedItem.Text;
string sqlcon = ConfigurationManager.ConnectionStrings["ProDBConn"].ConnectionString;
using (SqlConnection conn = new SqlConnection(sqlcon))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from promary where proName=@proName";
cmd.Parameters.Add(new SqlParameter("proName", proName));
using (SqlDataReader datareader = cmd.ExecuteReader())
{
while (datareader.Read())
{
int proId = datareader.GetInt32(datareader.GetOrdinal("proID"));
Sqlfun(proId);
}
}
}
}
}
}
效果图如下: