某一些数据库存的是编码,另有一个字典表存编码、名称。 想在datagridview显示的时候把编码显示成名称。
如果是在设计视图下直接添加的查询这种,可以通过编辑列选项,把某一列改为DataGridViewComboBoxColumn并且设置设置diaplaymember 和 valuemember 属性来实现。
但是我现在这个datagridview是通过语句动态绑定dataset的
//DataTable dt = new DataTable( );
//dt = db.dataQueryUseOracle( sqltext ); 
//dgEmployee.DataSource = dt; 
这样查询出结果之后,我如何通过写代码来实现这个功能呢

解决方案 »

  1.   


                DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
                column.HeaderText = "列标题";
                column.Name = "column";
                dataGridView1.Columns.RemoveAt(1);   //示例:第二列
                dataGridView1.Columns.Insert(1, column);
      

  2.   

    为什么用DataGridViewComboBoxColumn?
    联合查询不行?
      

  3.   

    http://blog.csdn.net/xianfajushi/article/details/7716763
    公历→农历
    2013年06月07日
    双子座
    二〇一三年四月廿九
    癸巳〖蛇〗 丁巳月 甲辰日 甲戌时
    今属:木;五行:水火木土;缺:金。
    纳音五行:长流水。
      

  4.   

    没这么做过,试一下:
    column.DataSource=dt;
    column.DataPropertyName="编码字段名";
    column.DisplayMember="编码名字段名";
    column.ValueMember="编码字段名";
      

  5.   

    我用xianfajushi的方法可以了
    谢谢两位
    string sqltext_ks = "select mc, bm from table";
                DataTable ks = new DataTable();
                ks = db.dataQueryUseOracle(sqltext_ks);            for (int i = 0; i < dgEmployee.RowCount - 1; i++)
                {
                    DataGridViewComboBoxCell column = new DataGridViewComboBoxCell();
                    column.DataSource = ks;
                    column.DisplayMember = "mc";
                    column.ValueMember = "bm";
                    dgEmployee.Rows[i].Cells[2] = column;
                };