Winform中combobox绑定数据源后,怎么获取combobox选中行对应数据源中的其他字段值

今天回答了坛子里一位朋友的提问,问题是这样的:

comboBox1绑定数据源后,怎么获取comboBox1所选中行对应数据源中的其他字段值。以前没注意过这方面的积累。

今天写到博客分享一下。虽然简单,我还是写一下。

例如:

comboBox1绑定了数据源datatable

datatable中有三个字段,分别为id, name,number;

设置如下

id作为comboBox1的valuemember;
name作为comboBox1的displaymember;
当我选中一条记录后,怎么获取number呢?

实现方法:

在comboBox1_SelectedIndexChanged事件里面,运用到了DataTable的Select()方法。

废话不多说了。

步骤如下:

1、建立一个全局的DataTable,方便在comboBox1_SelectedIndexChanged事件里调用

DataTable dt =new DataTable();//定义成全局

2、初始化DataTable,为它填充数据

            dt.Columns.Add("id", typeof(int));
            dt.Columns.Add("name", typeof(string));
            dt.Columns.Add("number", typeof(int));
            for (int id = 1; id <= 10; id++)
            {
                dt.Rows.Add(new object[] { id, string.Format("customer{0}", id), id });
            }

 3、为comboBox1绑定数据,代码如下:
    this.comboBox1.DataSource = dt.DefaultView;
    this.comboBox1.ValueMember = "id";
    this.comboBox1.DisplayMember = "name";
 4、在comboBox1_SelectedIndexChanged事件写代码获取DataTable中的其他字段值  
   private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string name = this.comboBox1.Text;
            DataRow[] dr = dt.Select("name='" + name + "'");//根据name在DataTable中查询选择的记录存入DataRow数组中
            foreach (DataRow d in dr)
            {
                this.textBox1.Text = d["number"].ToString();
            }
        }
 
  

看一下结果吧,大家觉得简单请不要拍砖啊,呵呵!!

Winform中combobox绑定数据源后,怎么获取combobox选中行对应数据源中的其他字段值_第1张图片

你可能感兴趣的:(C#)