首页 > 数据库 >使用SqlBulkCopy sqlserver 批量插入数据(C#)

使用SqlBulkCopy sqlserver 批量插入数据(C#)

时间:2023-03-31 17:24:26浏览次数:37  
标签:bulkCopy C# SqlBulkCopy sqlserver Add dataTable Columns row

先说实现原理:将需要插入数据库的集合里面的数据存在datatable里面,列名需相同,然后调用SqlBulkCopy方法。
1.新建datatable,并赋值
DataTable dataTable = new DataTable();
dataTable.Columns.Add("NAME1");
dataTable.Columns.Add("NAME2");
dataTable.Columns.Add("NAME3");
dataTable.Columns.Add("NAME4");
DataRow row = dataTable.NewRow();
for (int i = 1; i < req.data.Count; i++)
{
row["NAME1"] = NAME1;
row["NAME2"] = NAME2;
row["NAME3"] = NAME3;
row["NAME4"] = NAME4;
dataTable.Rows.Add(row);
}

2.调用SqlBulkCopy批量插入,“TABLE_NAME”为表名,dataTable是存好数据的dataTable
BulkInsertData(dataTable, "TABLE_NAME");
SqlBulkCopy方法
public static void BulkInsertData(DataTable dt, string tableName) {
string ConnectionString = "Server=" + "127.0.0.1" + ";Database=localhost;User ID=sa;Password=123";//数据库连接字符串
using (var bulkCopy = new SqlBulkCopy(ConnectionString))
{
foreach (DataColumn dcPrepped in dt.Columns)
{
bulkCopy.ColumnMappings.Add(dcPrepped.ColumnName, dcPrepped.ColumnName);
}
bulkCopy.BulkCopyTimeout = 660;
bulkCopy.DestinationTableName = tableName;
bulkCopy.WriteToServer(dt);
}
}

标签:bulkCopy,C#,SqlBulkCopy,sqlserver,Add,dataTable,Columns,row
From: https://www.cnblogs.com/ellafive/p/17276913.html

相关文章

  • LeetCode 94 二叉树的中序遍历
    LeetCode|94.二叉树的中序遍历给定一个二叉树的根节点root,返回它的中序 遍历。示例1:输入:root=[1,null,2,3]输出:[1,3,2]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]提示:树中节点数目在范围[0,100]内-100<=Node.val<=100迭代实现:......
  • 如何当个优秀的文档工程师?从 TC China 看技术文档工程师的自我修养
    本文系NebulaGraphCommunityAcademic技术文档工程师Abby的参会观感,讲述了她在中国技术传播大会分享的收获以及感悟。据说,技术内容领域、传播领域的专家和决策者们会在中国技术传播大会「tcworldChina2022」大会上分享心得。作为一名技术文档工程师,本着了解相关行业的......
  • html dom关于offset和client和scroll属性的详细说明
    确定元素的尺寸在WindowsInternetExplorer9中使用CSSOM测量元素尺寸和位置......
  • @AutoWired和@Resource有什么区别
    @Autowired和@Resource都是用于进行依赖注入的注解,但是它们有以下几个区别:来源不同:@Autowired是Spring提供的注解,而@Resource是JavaEE提供的注解,不过Spring也支持使用@Resource进行依赖注入。默认依赖查找方式不同:@Autowired默认使用类型匹配的方式进行依赖查找和......
  • kubernetes Secret使用
    节选rabbitmq的k8s部署部分secret用来配置环境变量1.Secret.yaml:1.1.配置文件secret.yaml apiVersion:v1kind:Secretmetadata:name:rabbitmq-secretnamespace:rabbitmqtype:Opaquedata:RABBITMQ_ERLANG_COOKIE:MTIzajE5dWVkYXM3ZGFkODEwMjNqMTM5ZGph......
  • React 编程思想 #2
    React编程思想#2接上文,已经实现了一个静态的页面,现在就要给页面加上交互了。寻找State状态是应用需要记录的最小变化,构建状态的最重要的原则是DRY(Don’tRepeatYourself,不要重复自己)。对于一个应用,构建出它的状态的绝对最小表示,并通过这些状态计算其他需要的内容。例如,如......
  • net6+canal 实现数据实时同步数据
    前言:前几天在做公司的一个项目,需求:把A项目数据,同步到B项目,A\B项目数据结构不一样(我们用的是mysql),B项目可以接受几秒内的数据同步;我当时第一时间就想到了flink和canal,然后发现flink并不支持net,所以转用canal;那么接下来我们看看canal到底是什么;canal简述canal是阿里巴巴......
  • 定时任务@Scheduled中的cron 表达式和 fixedRated类配置参数
    1.cron表达式格式:@Scheduled(cron="******"){秒数}{分钟}{小时}{日期}{月份}{星期}{年份(可为空)}{秒数} ==>允许值范围:0~59,不允许为空值,若值不合法,调度器将抛出SchedulerException异常"*"代表每隔1秒钟触发;","代表在指定的秒数触发,比如"0,15,45"......
  • 后端基础——rom,ram,memory compiler
    一,memory基础1,导览Memory用来存储和读写的大量的二进制数据。按功能上分类,基本可以分为两大类:只读存储器(ROM)和随机存取存储器(RAM)。ROM只能读,不能写;RAM既能读又能写。RAM具有易失性。断电以后,RAM中保存的数据将全部丢失;而ROM中的数据则可以长久保存。RAM可以分为常用的SRAM和DRA......
  • zabbix监控tcp连接数脚本
    1、添加脚本[root@localhost]#vim/etc/zabbix/zabbix_agent2.d/plugins.d/check_tcp.sh#!/bin/bashNAME=$1functionLISTEN{netstat-an|grep'LISTEN'|greptcp|wc-l}functionESTABLISHED{netstat-an|grep'ESTABLISHED'|greptcp|wc-l}......