一般是这样绑定和取值:
comboBox1.DataSource = student; //绑定student表为数据源
comboBox1.DisplayMember = "name";
comboBox1.ValueMember = "id";
string name = comboBox1.SelectedText;//取DisplayMember值
string id = comboBox1.SelectedValue.ToString();//取ValueMember值
DataTable table1 = this.comboBox1.DataSource as DataTable;
int rowIndex = this.comboBox1.SelectedIndex;
string str1 = table1.Rows[rowIndex]["tel"].ToString();//取绑定表中的其它值
DisplayMember设置为对应得name和tel valueMember设置为id
你一个combobox列表既要显示name又要显示tel吗?这样不太可能,要显示俩个不如用dataview或者别的控件啊!
你的数据源如果是数据集,可以通过视图实现返回id和name + tel。如果是对象集,你只需要再添加一个字符串类型的属性,返回name + tel就行了。
不应该把DisplayMember设置为id。
一般的做法是ValueMember绑定到关键字字段,用户选择后,根据选择的value(key),回到表(改表最好用缓存表)中,利用value定位到某行,再取其他字段的值。