关于DataTable添加新列到指定列的方法-程序员宅基地

技术标签: r语言  

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

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指定列就实现了。

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

 

转载于:https://www.cnblogs.com/kdkler/p/5504328.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/abel18444180020/article/details/101709276

智能推荐

STM32使用C标准库time.h里面的时间时钟函数_stm32 time.h库 time函数-程序员宅基地

文章浏览阅读2.4w次,点赞4次,收藏30次。标准C里面已经定义好时间日期库time.h,在嵌入式里面并没有被限制使用。下面我们看一下怎样在IAR中使用time.h库。有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。可以通过宏定义(_DLIB_TIME_USES_LONG, _DLIB_TIME_USES_6_stm32 time.h库 time函数

通过本地安装方式解决[email protected]: `node install.js` 的问题_chromedriver@^2.27.2 run install node install.js e-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏5次。初次尝试解决在网上搜索的解决方案: npm install报错:[email protected] install: node install.js但是按照他的流程操作下来发现会导致一个死循环# 使用这个命令之后会报同样的错误npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver解决方案通过本地直接安装https://www.npmjs.com/package_chromedriver@^2.27.2 run install node install.js error: error: command faile

JAVA三大框架的各自作用-程序员宅基地

文章浏览阅读312次。一、SpringSpring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion ofControl容器。然而,这仅仅是完整图..._java框架的各种作用

Linux后台运行程序、查看、关闭进程等常用命令_查询后台起了那些进程的命令-程序员宅基地

文章浏览阅读279次。后台运行程序命令nohup java -jar test.jar > test.log 2>&1 & 实时查看日志内容tail -f test.log查看后台进程端口命令netstat -anp关闭进程命令kill -9 进程ID_查询后台起了那些进程的命令

用 eventfd 在线程之间通信_eventfd跨线程使用-程序员宅基地

文章浏览阅读1.1w次。最近有想法把网络库推广成能在线程,同主机进程和不同主机之间的通信的公共中间件。后面两样都可以用 socket。 当然同主机进程也可以用别的,先不想那么多。我要说的线程之间,要实现和 socket 统一的 reactor 通信机制,比较好的是用 Linux 的 eventfd 。eventfd 是一个相对比较新的东西,资料不多,所以我也是摸着石头过河。基本做法就是用 eventfd_create_eventfd跨线程使用

ARM GCC 快速参考指南-程序员宅基地

文章浏览阅读4.8k次,点赞5次,收藏45次。ARM GCC 快速参考指南文章目录ARM GCC 快速参考指南概述命名使用命令参数`flags`编译命令` arm-none-eabi-gcc`链接命令 `arm-none-eabi-ld`查询储存空间占用信息命令`arm-none-eabi-size`导出`*.bin` 命令`arm-none-eabi-objcopy`调试程序命令`arm-none-eabi-gdb`反汇编命令`arm-none-eabi-objdump`概述GCC在最初指GNU C Compiler,作为GNU计划中相当重要的_arm gcc

随便推点

C++里声明函数原型的作用_c++声明函数原型有什么用吗-程序员宅基地

文章浏览阅读2.6k次。#include <iostream>#include <cmath>using namespace std;// 这个声明函数原型的代码必须有, 如果没有的话会报use of undeclared identifier 'simon' 这个异常void simon(double n);int main(){ simon(3); cout <&..._c++声明函数原型有什么用吗

bzoj3224 Tyvj 1728 普通平衡树_需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插-程序员宅基地

文章浏览阅读314次。Description您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数) 6. 求x的后继(后继定义为大于x,且最小的数)Input第一行为n,表示操_需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 1. 插

[nRF52832] 外设篇 | 实验一 LED 灯 及 BUTTON 按键_nrf button-程序员宅基地

文章浏览阅读7.2k次,点赞3次,收藏7次。本文讲解基于 nRF52832 SDK v12.2.0 的 LED 灯及 BUTTON 按键的板级支持函数及使用方法。_nrf button

javax.servlet.ServletException: File [/pages/.jsp] not found_javax.servlet.servletexception: jsp file [/web-程序员宅基地

文章浏览阅读3k次。今天碰到一个问题,开发了一个功能模块,功能都正常,但是,eclipse控制台一直报错javax.servlet.ServletException:File[/pages/.jsp]notfound解决方法: 在controller层方法加 @ResponseBody问题原因:当写入数据到Response中时,却用Request的方式。虽..._javax.servlet.servletexception: jsp file [/webcontent/birt/pages

Tricore系列之MPU_mpu supervisor 模式-程序员宅基地

文章浏览阅读2.3k次,点赞2次,收藏22次。以下内容是从官方文档翻译过来,仅为自己学习使用,如有错误欢迎指正!!!TriCore保护系统提供了隔离错误的基本功能。该系统是不显眼的,较少的开销,并避免不确定的运行时行为。保护系统集成了硬件机制,保护用户指定的存储范围,防止未经授权的读、写或指令获取访问。保护硬件也可以方便应用程序调试。存储保护子系统如下的子系统和存储保护有关。陷阱系统(The Trap System)当出现不可屏蔽中断(NMI)、指令异常或非法访问等事件时,就会触发trap。TriCore架构包含八类陷阱,并进一步分为同._mpu supervisor 模式

jni c本地代码回调java (多线程中,创建java对象时报空指针)未解决_java多线程中实体类引入报空指针-程序员宅基地

文章浏览阅读2k次。需求:在c回调函数里面,创建一个java对象,并将值传递给java应用使用。void callback(){ JNIEnv *env=NULL; jobject searchResultObj; pVm->AttachCurrentThread(&env,NULL);_java多线程中实体类引入报空指针