数据库里面是数字,取出来的列是这样的:-----------
食物(列名)1
3
1
2
-----------

怎么改写这列的值让这列变成下面的汉语显示
------------
食物(列名)苹果
香蕉
苹果
橘子
------------

1.代表苹果 2.代表橘子 3.代表香蕉
不好意思,我没有分了,只有20分了

解决方案 »

  1.   

    我已经把这些数字通过ilist取出来在DataGridView里面显示了,就是想知道怎么修改某列,让该列变成我想要的显示内容。
      

  2.   

    还有一个,就是某一列在datagridview里面显示的是“出生日期” ,怎么把这列改成“年龄”显示
      

  3.   

    实际上你可能要考虑这么一种情况,常态下食物列上显示食物名,你双击食物列的某个单元格时,该单元格的控件变成ComboBox,你从中选择限定范围内的食物后,点击“保存”,数据能正确的保存回数据库。也就是食物的ID值存进数据库的对应列。通过类似DataGridView的控件直接修改外键值列时,不仅是winform, asp.net/silverlight/wpf都可能有这种需求。SELECT 主表ID, 主表其他字段, 食物ID,  
    (SELECT 食物名 FROM 食物表 WHERE 
    食物表.食物ID = 主表.食物ID) as 
    食物名 FROM 主表如果你用到的是vs的向导,TableAdpater的Select命令用这样的SQL可以显示外键列对应表的信息(如食物名)……
      

  4.   

    如果你说的是列名称的修改,那么可以用 DataGridView1.Columns[i].HeaderText 来修改.
    内容修改可以用以下的循环
    foreach(int i=0;i<DataGridView1.Rows.Count;i++)
    {
     DataGridView1.Rows[i].Cells["食物"].Value="苹果" (香蕉、橘子 等等)
    }
    不知道这样是否符合你的要求
      

  5.   

    你取数据的时候用CASE WHEN 或者关联子表取出食物对应的汉字 再绑定到DataGridView就行了吧
      

  6.   

    完整解决:        public Form1()
            {
                InitializeComponent();
                dataGridView1.Rows.Add(new object[] { "www", 1, "aaa" });
                dataGridView1.Rows.Add(new object[] { "www", 3, "bbb" });
                dataGridView1.Rows.Add(new object[] { "www", 1, "ccc" });
                dataGridView1.Rows.Add(new object[] { "www", 2, "ddd" });
            }        private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                try
                {
                    if(e.ColumnIndex==1)
                    {
                        int val = Convert.ToInt32(e.Value);
                        string valStr="";
                        switch (val)
                        {
                            case 1:
                                valStr = "苹果";
                                break;
                            case 2:
                                valStr = "橘子";
                                break;
                            case 3:
                                valStr = "香蕉";
                                break;
                            default:
                                break;
                        }
                        e.Value = valStr;                    //替换格式化值
                        e.FormattingApplied = true;
                    }
                }
                catch (System.Exception ex)
                {
                    e.FormattingApplied = false;
                }
            }
      

  7.   

    一般情况下都是关联code表,如果没有,就用case when吧
      

  8.   

    一般情况下都是关联code表,如果没有,就用case when吧
      

  9.   

      private void tpaMaterialoutDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
            {
                if (e.ColumnIndex > 0)
                {
                       if ("1".Equals(e.Value))
                            e.Value = "已记账";
                        else
                            e.Value = "未记账";
                    }
             }
      

  10.   

    建一个取出来数据的实体类,在属性中写取值判断 set{if(value==1) return "苹果";...} 再把这个实体类绑定DataGridView 的数据源