代码改变世界

c#,winform,combobox联动

2008-06-26 16:07  Virus-BeautyCode  阅读(14649)  评论(2编辑  收藏  举报


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;