问一个关于ComboBox的简单问题 我用的ComboBox联动.为什么我一到SelectedIndexChanged事情件里面写联动的绑定就出错老是说我选中的是System.Data.DataRowView,我明明选中的有值啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 或请哪位大哥给一个combobox联动的例子,谢谢 就是一个combobox1,combobox2在load里面绑定,绑定的时候我都写了默认的绑定值,均为第一个bind(combobox1)bind(combobox2)combobox2是根据combobox1的选项进行绑定然后在combobox1的SelectedIndexChanged事情里面写bind(combobox2)combobox2是根据combobox1的选项进行绑定就是这里,如果这里不写就不出错,一写就说我选中的项是System.Data.DataRowView,但是我明明选中的是combobox1的项目啊. ComboBox绑定的的时候出问题了,没有指定其Text和Value值 我也想问个简单的问题,那个ComboBox是什么控件啊?我怎么找不到呢? 应该是你在绑定后取值时取的有问题,大致写了一个例子,你看下吧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"; }} 不过我就是不知道为什么?为什么和dropdownlist不一样呢? 使用绑定后ComboBox的Items里的每个Item都是DataRowView类型的对象,如果取值要用SelectedValue来取,SelectedValue的值是对应ValueMember 属性的字段值。 comboBox2.ValueMember = "user_id";comboBox2.DisplayMember = "user_name";comboBox2.DataSource = dtUser;这么绑定试试 如何通过C#程序将VF数据表中的数据提取出来啊!小弟在线等!!! 我的程序打包并在很多机器上安装后能正常运行运行,但在一台机器上安装无法运行 string类型组成DateTime类型 还是邮件问题 10分相求抽像类跟接口的区别,接口、抽像类可以包含方法的实现吗? 内部类如何调用外部类的非静态成员? 谁能详细讲讲DataSet 和 DataTable 的区别? 求文档写法! datagrid的初级问题~ 三层体系结构怎么搞明白? Oracle:求一条sql语句? 如何用c#编写一个工资管理系统?
在load里面绑定,绑定的时候我都写了默认的绑定值,均为第一个
bind(combobox1)
bind(combobox2)combobox2是根据combobox1的选项进行绑定
然后在combobox1的SelectedIndexChanged事情里面写
bind(combobox2)combobox2是根据combobox1的选项进行绑定就是这里,如果这里不写就不出错,一写就说我选中的项是System.Data.DataRowView,但是我明明选中的是combobox1的项目啊.
{
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";
}
}
为什么和dropdownlist不一样呢?
SelectedValue的值是对应ValueMember 属性的字段值。
comboBox2.ValueMember = "user_id";
comboBox2.DisplayMember = "user_name";
comboBox2.DataSource = dtUser;
这么绑定试试