dataGridView中有一个DataGridViewComboBoxColumn 列
1、是这样绑定的:   productName.DataSource = ds.Tables[0];
            productName.DisplayMember = "productName";
            productName.ValueMember = "id";
2、存到数据库是是存的dataGridView1["productName", j].value
3、从数据库中取值的时候赋值给dataGridView1["productName",i].Value= ds.Tables[0].Rows[i]["productId"].ToString();   
   时报错DataGridComboBoxCell value is not valid.

解决方案 »

  1.   

    首先你绑定的是ComBox,所以你只需给点数据库绑定的字段,它会自动识别的,你这样直接给值肯定报错
    DataGridViewComboBoxColumn1.DataPropertyName = "绑定的字段";
      

  2.   

    你的绑定方式没有问题。
    但productName.DataSource = ds.Tables[0]; 是在什么时候做的?
    是不是从数据库中取值时,DataGridViewComboBoxColumn列的DataSource为NULL了?
      

  3.   

     
    dataGridView1["productName",i].Value= ds.Tables[0].Rows[i]["productName"].ToString();  
      

  4.   

    运用这个方法绑定后      dataGridView1.DataSource = ds.Tables[0];
                dataGridView1.Tag = "id";            dataGridView1.Columns["project_name1"].DataPropertyName = "project_name";
             
                dataGridView1.Columns["invest1"].DataPropertyName = "invest";
               
                dataGridView1.Columns["start_endDate1"].DataPropertyName = "start_endDate";
               
                dataGridView1.Columns["result1"].DataPropertyName = "result";
               
                dataGridView1.Columns["tob_planInvest1"].DataPropertyName = "tob_planInvest";
    为什么dataGridView1的列除了我定义的,又多出了列project_name1、invest1、start_endDate1、tob_planInvest1,该怎么不让出现这些列呀
      

  5.   

    Visible = false就不显示了
      

  6.   

    Visible = false就不显示了  怎么知道这些列的名字?
      

  7.   

    (DataGridView).AutoGenerateColumns = false;
    禁止自动生成列