如果有问题请大家更正
使用DropFownList web控件实现省是联动效果,DropDownList的AutoPostBack如果设置true,当DropDownList内容发生改变会自动返回到服务器端,这比在java中使用ajax 中dwr实现要方便得多.AutoPostBack,DropDownList在数据绑定的方法都很相似1.步:获得SqlConnection对象.
为了以后能够方便修改联接字符串,在Web.config中做如下设置
<appSettings>
<add key="conn" value="server=.;uid=sa;pwd=;database=test"/>
</appSettings>
设置好字符串后获得联接字符串
String ConnStr = System.Configuration.ConfigurationSettings.AppSettings["conn"].ToString().Trim();
获取SqlConnection对象
conn = new SqlConnection(ConnStr);
DropDownList,以及RadioButtonList对象数据绑定的使用方法
SqlCommand province = new SqlCommand("select * from province",conn);
SqlDataReader read=province.ExecuteReader();
this.ddlCuberniya.DataTextField = "province";//将数据库中要显示在对象上面的数据列标题
this.ddlCuberniya.DataValueField = "id"; //数据库中的id
this.ddlCuberniya.DataSource=read;
this.ddlCuberniya.DataBind(); //dataBind才是将集合往DropDownList上绑
-------------------------------------------实现代码---------------------------
using System.Data.SqlClient;
public partial class Demo2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
this.ddlCuberniya.AutoPostBack = true;
if (!Page.IsPostBack) {
DB db = new DB();
SqlConnection conn=db.Open();
//加载性别数据
SqlCommand cmd = new SqlCommand("select * from enrollPersonSex", conn);
SqlDataReader reader = cmd.ExecuteReader();
this.rblSex.DataTextField="sex";
this.rblSex.DataValueField="id";
this.rblSex.DataSource = reader;
this.rblSex.DataBind();
reader.Close();
cmd.Dispose();
//加载省信息
SqlCommand province = new SqlCommand("select * from province",conn);
SqlDataReader read=province.ExecuteReader();
this.ddlCuberniya.DataTextField = "province";
this.ddlCuberniya.DataValueField = "id";
this.ddlCuberniya.DataSource=read;
this.ddlCuberniya.DataBind();
read.Close();
//第一次根据省初始市
SqlCommand sqlCommandCity = new SqlCommand("select * from city where proid="+this.ddlCuberniya.SelectedValue,conn);
SqlDataReader readcity = sqlCommandCity.ExecuteReader();
this.ddlCity.DataSource = readcity;
this.ddlCity.DataTextField = "city";
this.ddlCity.DataValueField = "id";
this.ddlCity.DataBind();
readcity.Close();
db.Close(conn);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
this.Panel2.Visible = false;
this.Panel3.Visible = true;
}
protected void btNextTwo_Click(object sender, EventArgs e)
{
this.Panel3.Visible = false;
this.Panel1.Visible = true;
}
protected void Button1_Click1(object sender, EventArgs e)
{
string nickname=this.txtNickName.Text.Trim();
int age = Convert.ToInt32(this.txtAge.Text.Trim());
String sex = null;
//获得性别
for (int i = 0; i < this.rblSex.Items.Count; i++) {
if (this.rblSex.Items[i].Selected) {
sex=rblSex.Items[i].Text.Trim();
}
}
//取得确认密码
String pwd = null;
String txtpwd= this.txtPwd.Text.Trim();
String accreditpwd=this.txtAccreditPwd.Text.Trim();
if (txtpwd.Equals(accreditpwd))
{
pwd = txtpwd;
}
else {
//确认密码失败以后的处理
this.Panel3.Visible = true;
this.Panel1.Visible = false;
Response.Write("<script>alert('密码输入错误,请重输入!')</script>");
}
//获得省
string cuberniya = this.ddlCuberniya.SelectedItem.Text.Trim();
//获得市
string city = this.ddlCity.SelectedItem.Text.Trim();
string strinsert =
"insert into enrollInfo(nickName,age,sex,password,guberniya,city)"+
"values('" + nickname + "'," + age + ",'" + sex + "','" + pwd + "','" + cuberniya + "','" + city + "')";
DB db = new DB();
if (pwd != null)
{ //如果密码确认成功 将数据插入到数据库操作
db.executeSql(strinsert);
}
else {
//如果失败以后的错误提示
Response.Write("<script>alert('" + "error:" + nickname + age + sex + pwd + "**********" + cuberniya + "*************" + city + "')</script>");
}
}
//省市联动选择省触法的选择"索引改变事件"
protected void ddlCuberniya_SelectedIndexChanged(object sender, EventArgs e)
{
String prid = this.ddlCuberniya.SelectedValue;
DB db = new DB();
SqlConnection conn=db.Open();
//通过省ID为条件来获得市的的内容
SqlCommand cmd = new SqlCommand("select * from city where proid=" +prid,conn);
SqlDataReader red=cmd.ExecuteReader();
this.ddlCity.DataSource = red;
this.ddlCity.DataValueField = "city";
this.ddlCity.DataValueField = "id";
this.ddlCity.DataBind();
red.Close();
db.Close(conn);
}
}