c#,winform,combobox联动



C# code
   
     
private   void  RegisterForm_Load( object  sender, EventArgs e)
{
SqlConnection con 
= new SqlConnection("server=root_db;database=users;uid=sa;password=");
SqlDataAdapter da 
= new SqlDataAdapter("select group_id, group_name from mygroup", con);
DataSet ds 
= new DataSet();
da.Fill(ds, 
"group");
DataTable dtGroup 
= ds.Tables["group"];

comboBox1.DataSource 
= dtGroup;
comboBox1.DisplayMember 
= "group_name";
comboBox1.ValueMember 
= "group_id";
}


private   void  comboBox1_SelectedIndexChanged( object  sender, EventArgs e)
{
if (comboBox1.SelectedIndex > -1)
{
//注意以下两行代码,估计人的错误就在这里
DataRowView drv = (DataRowView)comboBox1.SelectedItem;
string gId = drv.Row["group_id"].ToString();
SqlConnection con 
= new SqlConnection("server=root_db;database=users;uid=sa;password=");
SqlDataAdapter da 
= new SqlDataAdapter("select user_id, user_name from myuser where group_id='" + gId + "'", con);
DataSet ds 
= new DataSet();
da.Fill(ds, 
"user");
DataTable dtUser 
= ds.Tables["user"];

comboBox2.DataSource 
= dtUser;
comboBox2.DisplayMember 
= "user_name";
comboBox2.ValueMember 
= "user_id";
}

}






至于设置一项“请选择市”,有两种方法
1、在select里添加
SQL code
   
     
select   ' 00 '   as  cid,  ' 请选择市 '   as  cityname  union   select  cid, cityname  from  yourtable




2、在取出后添加
C# code
   
     
DataRow dr  =  dt.NewRow();
dr[
" cid " =   " 00 " ;
dr[
" cityname " =   " 请选择市 " ;
dt.Rows.InsertAt(dr, 
0 );
comboBox1.DataSource 
=  dt;


你可能感兴趣的:(combobox)