在C#中如何在第一列插入DataTable的列?

118

有人知道在DataTable中在第0个位置插入列的最佳方法吗?


你为什么想要这样做?实际上,列的顺序并不重要。 - Stefan Steinegger
1
有时候,如果你在从数据库获取数据后向数据表中添加列,你可能需要将其设置在开头。 - Wael Dalloul
1
我正在将数据表推入批量插入。 - Grant
9
@Stefan,我相信在使用Sql BulkCopy时,列的顺序是相关的。 - IAbstract
3个回答

207
您可以使用以下代码将列添加到Datatable的位置0:
    DataColumn Col   = datatable.Columns.Add("Column Name", System.Type.GetType("System.Boolean"));
    Col.SetOrdinal(0);// to put the column in position 0;

108

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

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

更新:请注意,在您不需要对DataColumn执行其他操作时,此方法是可行的。Add()方法将返回所添加的列,而SetOrdinal()方法将不返回任何内容。


16
单一的陈述并不总是更好。在这种情况下,我喜欢它加1。 - Rémi

3
    //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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接