namespace c09重做省市级联
{
using System.Data.SqlClient;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//指定显示表中那一列的值
this.cbpProvience.DisplayMember = "aname";
//为下拉列表控件的每一项设置一个隐藏在项背后的实际值
this.cbpProvience.ValueMember = "aid";
LoadData(0, cbpProvience);
}
#region 通过指定数据源方式为下拉列表绑定数据源 =void LoadData(int id, ComboBox cbo)
/// <summary>
/// 通过指定数据源方式为下拉列表绑定数据源
/// </summary>
/// <param name="id"></param>
/// <param name="cbo"></param>
void LoadData(int id, ComboBox cbo)
{
string connStr = "Data Source=YAO-LENOVO-PC;Initial Catalog=MySchool888;Integrated Security=True";
string sql = "select aid,aname,apid from areas where apid=@id";
SqlParameter p = new SqlParameter("id", id);
SqlDataAdapter da = new SqlDataAdapter(sql, connStr);
//将参数传递给服务器执行
da.SelectCommand.Parameters.Add(p);
DataTable dt = new DataTable();
da.Fill(dt);
//为下拉列表指定数据源
//它指定数据源会让下拉列表自动选择第0项,这个特性就会触发SelectedIndexChanged事件
cbo.DataSource = dt;
}
#endregion
private void cbpProvience_SelectedIndexChanged(object sender, EventArgs e)
{
//因为之前控件绑定的数据源是表,所以控件会根据表的每一行数据生成对应的项,所以下拉列表的每一项SelectedItem的本质就是DataRowView
//DataRowView row=this.cbpProvience.SelectedItem as DataRowView;
//LoadData((int)row["aid"], cboCity);
int id = (int)this.cbpProvience.SelectedValue;
LoadData(id,cboCity);
this.cboCity.DisplayMember = "aname";
}
}
}