DataTable dt = new DataTable();
            dt.Columns.Add("a", typeof(string));
            dt.Rows.Add("a");
            dt.Columns["a"].ColumnName = "b";
            dataGridView1.DataSource = dt;

解决方案 »

  1.   

    修改列名要这样修改:datatable.columns["name"].columnName="姓名";
    如果想封装成函数,可以传入一个string[ ]数组表示要修改成什么
    然后for循环datatable.columns[rowid].columnName=string[rowid];
    可以直接改,也可以先将传入的datatableCopy一份,修改后返回新的datatable
      

  2.   

    到时调用 的话用
    datatable 新dt=类名(原dt)
      

  3.   


     DataTable cc(DataTable dt, List<string []> list)
            {
                for (int i = 0; i < list.Count; i++)
                {
                    dt.Columns[list[i][0]].ColumnName = list[i][1];
                }
                return dt;
            }            DataTable dt = new DataTable();
                dt.Columns.Add("a", typeof(string));
               
                List<string [] > list=new List<string[]>();
                list.Add(new string[2] { "a", "b" });
                var newdt=cc(dt, list);
                dataGridView1.DataSource = newdt;
      

  4.   

    那就定义2个string[ ]数组,一个是英文名,一个是中文名
    比如2个数组分别叫做string[ ] EnName;string[ ] ChName
    函数传入一个datatable,返回一个datatable
    执行时先copy一份,然后循环执行修改列名的操作:
    for(int i=0;i<EnName.Length;i++)
    {
    if(dt.Columns.Contains(EnName[i])//如果有这个列就替换,没有就不替换
    {
    dt.Columns[EnName[i]].ColumnName=ChName[i];
    }
    }