首页 > 解决方案 > 用 ac# 数据表的第一行覆盖列标题

问题描述

我想知道是否存在一种有效的方法来首先覆盖a的column标题datatablerow

为了说明我的观点,假设一个有,作为一个样本datatable

Column 0 Column 1 Column 2

--------------------------

x1 x2 x3

事实上,它可以使用

dataTable.Columns["Column 0"].ColumnName = "x1";

dataTable.Columns["Column 1"].ColumnName = "x2"; 等等

dataTable.AcceptChanges();

但是,不可否认,如果处理50或,此手动更新将变得低效100 headers

提前致谢。

标签: c#datatableheaderconsole-application

解决方案


您可以使用以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Data;

namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {
            //Your code goes here
            Console.WriteLine("Hello, world!");
            DataTable table = new DataTable();
            table.Columns.Add("Dosage", typeof(int));
            table.Columns.Add("Drug", typeof(string));
            table.Columns.Add("Patient", typeof(string));
            //table.Columns.Add("Date", typeof(DateTime));

            // Here we add five DataRows.
            table.Rows.Add(25, "Indocin", "David");
            table.Rows.Add(50, "Enebrel", "Sam");
            table.Rows.Add(10, "Hydralazine", "Christoff");
            table.Rows.Add(21, "Combivent", "Janet");
            table.Rows.Add(100, "Dilantin", "Melanie");
            if(table.Rows.Count > 0)
            {
                for(int i = 0; i < table.Columns.Count; i++){
                    string columnName = Convert.ToString(table.Columns[i]);
                    table.Columns[columnName].ColumnName = Convert.ToString(table.Rows[0][i]);
                }
            }

            for(int i = 0; i < table.Columns.Count; i++){
                Console.WriteLine(table.Columns[i]);
            }
        }
    }
}

推荐阅读