关于DataTable添加新列到指定列的方法

时间:2021-05-23 15:45:50

在开发新项目的时候发现了一个问题

dtResult.Columns.Add()方法只能将指定的列添加到DataTable的列的最后的位置,但是不能添加到指定的列上。举例来说,假设dtResult总共有3列(列名分别是col1,col2,col3),我们新定义一个列,列名是col100,那么 dtResult.Columns.Add(col100)方法只能将列添加到第四列,这个时候新表将变成这样——表列名依次是(col1,col2,col3,col100)而,用户如果想把列添加到第二列——使表变成表列名依次是(col1,col100,col2,col3)——这个方法就不行了,那么有什么其他的方法吗?

网上搜索

提供了一些方法,其中有一个方法是可以实现的,就是重新构造一张表,让新表列定义成列依次是col1,col100,col2,col3,然后用for循环,将dtResult表的数据写入到新表中,但是这样的循环太麻烦,得自己去构造新表,而且,如果数据量比较大的话,执行效率也会有问题,那么除了这种方法,有没有其他什么方法呢?

于是继续往上搜索

searching。。。。

然后找到了一个方法:

if (!dtResult.Columns.Contains("col100"))
{
dtResult.Columns.Add("col100", typeof(Decimal), "0.00").SetOrdinal(1);
}

if判断是判断表中是否存在列名为col100的,如果存在当然就不能重复添加了,如果不存在,就将列加入进去,这样,你想要将新列添加到DataTable指定列就实现了。

此方法希望对你的开发有所帮助。