dataGridView1.DataSource =  Table1_BindingSource;
其中Table1.id1 是Employee表的id的外键
Employee表有id name等字段
在dataGridView1的columns中将id1作如下设置--
ColumnType改为DataGridViewComboBoxColumn
下面几个关键设置为
DataPropertyName--id1  即字段名
DataSource   ---Employee_BindingSource
DisplayMember  name
ValueMember    id
Employee表都有数据了,想象中dataGridView1应该正常运行,id1显示雇员名称,
但运行出现DataGridViewComboBoxCell  value is not valid 的错误,下拉框中出现的是雇员编码,请问是为什么?

解决方案 »

  1.   

                //增加combobox一列
                DataGridViewComboBoxColumn pAddComboBox1 = new DataGridViewComboBoxColumn();
                pAddComboBox1.Name = "";
                pAddComboBox1.Items.Add("");
                pAddComboBox1.Items.Insert(1, "");
                pAddComboBox1.Items.Insert(2, "");
                pAddComboBox1.Items.Insert(3, "");
                dataGridView1.Columns.Insert(1, pAddComboBox1); 没懂你的意思~,参照一下上面的代码,用程序增加 DataGridViewComboBoxColumn 列。
      

  2.   

    就是datagridview1中id1这个列要改为下拉框,显示的是另一个表(Employee)的字段名Employee.name,却遇到麻烦
      

  3.   

    DataGridView在自动绑定显示的时候是不会自动添加Combox中的内容的,只有自己手动去去添加,添加的方法有很多,去看看MSDN就型了。
      

  4.   

    DataGridViewComboBoxColumn 列要設定:
    DataSource(對應數據表,這里沒有對)
      

  5.   

    DataGridViewComboBoxColumn rr = new DataGridViewComboBoxColumn(); 
                rr.Name = "combobox"; 
                rr.DataSource=你从数据库获取的数据; 
                rr.DisplayMember="字段"; 
                rr.ValueMember="字段2" 
                rr.Items.Add("ss");//也可以自己添加的数据 
                rr.Items.Add("hh");//也可以自己添加的数据 
                this.dataGridView1.Columns.Add(rr); 
    仅供参考!
      

  6.   

    DataGridViewComboBoxColumn co_sex = new DataGridViewComboBoxColumn(); 
                co_sex.DataPropertyName = "sSex"; 
                co_sex.HeaderText = "性别"; 
                DataTable dt = new DataTable(); 
                dt.Columns.Add("sexname"); 
                dt.Columns.Add("sexvalue"); 
                DataRow dr = dt.NewRow(); 
                dr[0] = "男"; 
                dr[1] = "男"; 
                dt.Rows.Add(dr); 
                DataRow dr1 = dt.NewRow(); 
                dr1[0] = "女"; 
                dr1[1] = "女"; 
                dt.Rows.Add(dr1); 
                
                co_sex.DataSource = dt; 
                co_sex.ValueMember = "sexvalue"; 
                co_sex.DisplayMember = "sexname"; 
                
                this.DataGridView1.Columns.Add(co_sex);