c#数据表在位置0插入列

Posted

技术标签:

【中文标题】c#数据表在位置0插入列【英文标题】:c# datatable insert column at position 0 【发布时间】:2010-11-23 07:36:36 【问题描述】:

有谁知道在数据表的位置 0 处插入列的最佳方法?

【问题讨论】:

为什么要这样做?列的顺序实际上应该不相关。 有时,如果您在从 db 获取数据后向数据表添加列,您可能需要在请求时设置它。 我将数据表放入批量插入中 @Stefan,我相信在使用 Sql BulkCopy 时列的顺序是相关的。 【参考方案1】:
    //Example to define how to do :

    DataTable dt = new DataTable();   

    dt.Columns.Add("ID");
    dt.Columns.Add("FirstName");
    dt.Columns.Add("LastName");
    dt.Columns.Add("Address");
    dt.Columns.Add("City");
           //  The table structure is:
            //ID    FirstName   LastName    Address     City

       //Now we want to add a PhoneNo column after the LastName column. For this we use the                               
             //SetOrdinal function, as iin:
        dt.Columns.Add("PhoneNo").SetOrdinal(3);

            //3 is the position number and positions start from 0.`enter code here`

               //Now the table structure will be:
              // ID      FirstName   LastName    PhoneNo    Address     City

【讨论】:

【参考方案2】:

只是为了改进 Wael 的答案并将其放在一行中:

dt.Columns.Add("Better", typeof(Boolean)).SetOrdinal(0);

更新:请注意,当您不需要对 DataColumn 执行任何其他操作时,此方法有效。 Add() 返回有问题的列,SetOrdinal() 不返回任何内容。

【讨论】:

单一的声明并不总是更好。在这种情况下,我喜欢 +1【参考方案3】:

您可以使用以下代码将列添加到 Datatable 的位置 0:

    DataColumn Col   = datatable.Columns.Add("Column Name", System.Type.GetType("System.Boolean"));
    Col.SetOrdinal(0);// to put the column in position 0;

【讨论】:

以上是关于c#数据表在位置0插入列的主要内容,如果未能解决你的问题,请参考以下文章

sql server 表中有一列,往数据库同时插入几条数据时,这个列的值是相同的

在C#中进行DataTable操作:根据列数据插入一些汇总行

如何将一列插入到两个现有列之间的数据集中?

使用 C# 出现错误“无法在表中插入标识列的显式值”

在 C# 中插入具有重复记录列的 BigQuery 行

如何在 Pandas 数据框中的特定位置插入一列? (更改熊猫数据框中的列顺序)