csharp: DataTable Rename ColumnName and remove Column

  enum ChangeNume
        {
            /// <summary>
            /// 简体
            /// </summary>
            gbk=1,
            /// <summary>
            /// 英文
            /// </summary>
            en=2,
            /// <summary>
            /// 繁体
            /// </summary>
            big=3,
            ko=4,
            jp=5,
        }

        /// <summary>
        /// 
        /// </summary>
        /// <returns></returns>
        DataTable setData()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("id", typeof(int));
            dt.Columns.Add("name", typeof(string));
            dt.Columns.Add("patner", typeof(int));
            dt.Columns.Add("time", typeof(DateTime));
            dt.Rows.Add(1, "dgeo", 0, "2015-01-02");
            dt.Rows.Add(2, "geovindu", 1, "2015-03-03");
            dt.Rows.Add(3, "gess", 1, "2015-03-23");
            dt.Rows.Add(4, "dfadfd", 2, "2015-04-03");
            return dt;
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="dv"></param>
        /// <param name="lname"></param>
        private DataTable setGridViewName(DataTable dv, ChangeNume lname)
        {
            DataTable dt = dv;
            switch (lname)
            {
                case ChangeNume.gbk:
                    dt.Columns[0].ColumnName = "序号";
                    dt.Columns[1].ColumnName = "名称";
                    dt.Columns[2].ColumnName = "父节点";
                    dt.Columns[3].ColumnName = "日期";
                    break;
                case ChangeNume.big:
                    dt.Columns[0].ColumnName = "序號";
                    dt.Columns[1].ColumnName = "名稱";
                    dt.Columns[2].ColumnName = "父節點";
                    dt.Columns[3].ColumnName = "日期";
                    break;
                case ChangeNume.en:
                    dt.Columns[0].ColumnName = "id";
                    dt.Columns[1].ColumnName = "name";
                    dt.Columns[2].ColumnName = "patner";
                    dt.Columns[3].ColumnName = "time";
                    break;
                default:
                    dt.Columns[0].ColumnName = "序号";
                    dt.Columns[1].ColumnName = "名称";
                    dt.Columns[2].ColumnName = "父节点";
                    dt.Columns[3].ColumnName = "日期";
                    break;
            }
            return dt;
        }

        /// <summary>
        /// 
        /// </summary>
        public Form2()
        {
            InitializeComponent();
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form2_Load(object sender, EventArgs e)
        {
            this.dataGridView1.DataSource = setGridViewName(setData(), ChangeNume.en);

        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            this.dataGridView2.DataSource = setGridViewName(setData(), ChangeNume.big);
        }

  

   /// <summary>
        /// DataTable列名移除 
         /// </summary>
         /// <param name="dcName"></param>
         /// <param name="datatable"></param>
         private void DataTableRemoveColumn(string dcName,DataTable datatable)
         {
            // List<string> clmnames = new List<string>(new string[] { "clm6", "clm7", "clm20" });
               DataColumnCollection dcCollection = datatable.Columns;
               if (dcCollection.Contains(dcName))
               {
                   dcCollection.Remove(dcName);
               }
         }
        /// <summary>
         /// DataTable列索引移除
        /// </summary>
        /// <param name="index"></param>
        /// <param name="datatable"></param>
        private void DataTableRemoveIndex(List<int> index, DataTable datatable)
        {
            //List<int> index = new List<int>(new int[] { 2, 3, 5 });
            List<string> primes = new List<string>();
            foreach (int i in index)
            {
                primes.Add(datatable.Columns[i].ColumnName);
            }

            foreach (string iname in primes)
            {
                DataTableRemoveColumn(iname, datatable);
            }

        }

  测试:

            DataTable dt = setData();
            DataTable ds=new DataTable();
            //店铺代码	店铺名称	姓名	身份证号	职位	基本出勤时数	计薪时数	迟到早退
            //1
            List<int> primes = new List<int>(new int[] {0, 2, 3});
            DataTableRemoveIndex(primes, dt);

            //2.
            //List<string> clmnames = new List<string>(new string[] { "店铺代码", "基本出勤时数", "职位" });
            //foreach (string i in clmnames)
            //{
            //  DataTableRemoveColumn(i, dt);
            //}
            this.dataGridView1.DataSource = dt;

  

原文地址:https://www.cnblogs.com/geovindu/p/4627191.html