日期:2014-05-18  浏览次数:20870 次

C# WinForm DataGridView下拉列二级联动
如下 代码
C# code
        private void dgv_InInfo_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (dgv_InInfo.CurrentCell.OwningColumn.Name == "ModelCell")
            {
                ocnn = new OleDbConnection(connections);
                ocnn.Open();
                string name = dgv_InInfo.CurrentRow.Cells[2].Value.ToString();
                string sql = "select * from MIS_MaterielRegiser where MR_Name='" + name + "'";
                ocmd = new OleDbCommand(sql,ocnn);
                oda = new OleDbDataAdapter(ocmd);
                DataSet ds = new DataSet();
                oda.Fill(ds);
                ((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown;
                ((ComboBox)e.Control).DataSource = ds.Tables[0];
                ((ComboBox)e.Control).DisplayMember = "MR_Model";
            }
        }
name所在列在Load事件中已绑定好数据,这样做虽然能实现根据name的值动态绑定,但是选定值后好像没有提交到单元格。所以一直都在报DataGridViewComBoxCell无效值这个错,什么原因?

------解决方案--------------------
应该是你的数据类型不一样吧,字段什么类型,int?