public bool DoQuestionSqlBulkCopy(DataTable dtDoQuestion,
            string DoQuestionName,
            DataTable dtDoQuestionText,
            string DoQuestionTextName,
            DataTable dtDoQuestionRemark,
            string DoQuestionRemarkName)
        {
            using (System.Data.SqlClient.SqlBulkCopy sqlBC = new System.Data.SqlClient.SqlBulkCopy(DBConnectionConfig.ConnectionString))
            {
                #region 选项指量插入
                if (dtDoQuestion.Rows.Count > 0)
                {
                    //每10W条数据一个事物  
                    sqlBC.BatchSize = dtDoQuestion.Rows.Count;

//超时时间  
                    sqlBC.BulkCopyTimeout = 60;

//表名Users  
                    sqlBC.DestinationTableName = "dbo." + DoQuestionName;

//字段对应,分表为原数据表字段名,和导入数据库的字段名  
                    sqlBC.ColumnMappings.Add("Tid", "Tid");
                    sqlBC.ColumnMappings.Add("SId", "SId");
                    sqlBC.ColumnMappings.Add("OId", "OId");
                    sqlBC.ColumnMappings.Add("SN", "SN");
                    sqlBC.ColumnMappings.Add("Score", "Score");
                    sqlBC.ColumnMappings.Add("Selected", "Selected");
                    sqlBC.ColumnMappings.Add("OPTIME", "OPTIME");

//导入到数据库  
                    sqlBC.WriteToServer(dtDoQuestion);
                    sqlBC.ColumnMappings.Clear();
                }
                #endregion

#region 文字选项批量保存
                if (dtDoQuestionText.Rows.Count > 0)
                {
                    //每10W条数据一个事物  
                    sqlBC.BatchSize = dtDoQuestionText.Rows.Count;

//超时时间  
                    sqlBC.BulkCopyTimeout = 60;

//表名DoquestionText  
                    sqlBC.DestinationTableName = "dbo." + DoQuestionName;

//字段对应,分表为原数据表字段名,和导入数据库的字段名  
                    sqlBC.ColumnMappings.Add("Tid", "Tid");
                    sqlBC.ColumnMappings.Add("SId", "SId");
                    sqlBC.ColumnMappings.Add("OId", "OId");
                    sqlBC.ColumnMappings.Add("SN", "SN");
                    sqlBC.ColumnMappings.Add("MId", "MId");
                    sqlBC.ColumnMappings.Add("Content", "Content");
                    sqlBC.ColumnMappings.Add("OPTIME", "OPTIME");

//导入到数据库  
                    sqlBC.WriteToServer(dtDoQuestionText);
                    sqlBC.ColumnMappings.Clear();
                }
                #endregion

#region 文字选项批量保存
                if (dtDoQuestionRemark.Rows.Count > 0)
                {
                    //每10W条数据一个事物  
                    sqlBC.BatchSize = dtDoQuestionRemark.Rows.Count;

//超时时间  
                    sqlBC.BulkCopyTimeout = 60;

//表名DoquestionText  
                    sqlBC.DestinationTableName = "dbo." + DoQuestionRemarkName;

//字段对应,分表为原数据表字段名,和导入数据库的字段名  
                    sqlBC.ColumnMappings.Add("Tid", "Tid");
                    sqlBC.ColumnMappings.Add("SId", "SId");
                    sqlBC.ColumnMappings.Add("SN", "SN");
                    sqlBC.ColumnMappings.Add("Content", "Content");
                    sqlBC.ColumnMappings.Add("OPTIME", "OPTIME");

//导入到数据库  
                    sqlBC.WriteToServer(dtDoQuestionRemark);
                    sqlBC.ColumnMappings.Clear();
                }
                #endregion

return true;
            }
        }

mssqlserver 批量插入示例的更多相关文章

  1. c#批量插入示例

    var sql = @"Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcApplication1-20131029153010;I ...

  2. MongoDB批量更新和批量插入的方式

    最近,在调试代码中发现向MongoDB插入或者更新文档记录时若是多条的话都是采用for循环操作的,这样的处理方式会造成数据操作耗时,不符合批量处理的原则:对此,个人整理了一下有关MongoDB的批量更 ...

  3. c# 数据库批量插入数据SqlBulkCopy 示例

    /// <summary> /// 批量插入数据 /// </summary> public static void SqlBulkInsert(DataTable dt, s ...

  4. 批量插入数据, 将DataTable里的数据批量写入数据库的方法

    大量数据导入操作, 也就是直接将DataTable里的内容写入到数据库 通用方法: 拼接Insert语句, 好土鳖 1. MS Sql Server:   使用SqlBulkCopy 2. MySql ...

  5. SQL语句-批量插入表(表数据插表)

    批量插入表(表数据插表) ****1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select value1,val ...

  6. Hibernate批处理操作优化 (批量插入、更新与删除)

    问题描述 我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU负载降低. 工 ...

  7. SQL批量删除与批量插入

    批量删除: DELETE FROM MyTable WHERE ID IN (1,2); 批量插入: INSERT INTO MyTable(ID,NAME) VALUES(1,'123');INSE ...

  8. JDBC中的批量插入和乱码解决

    字符集-乱码问题 用JDBC访问MySql数据库的时候,如果JDBC使用的字符集和MySql使用的字符集不一致,那么会导致乱码发生.解决办法当时是在使用JDBC的时候指定和数据库一样的字符集.我们可以 ...

  9. SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)

    临时表:Test /****** 对象: Table [dbo].[Test] 脚本日期: 05/10/2013 11:42:07 ******/ SET ANSI_NULLS ON GO SET Q ...

随机推荐

  1. MySQL索引背后的数据结构及算法原理 --转

    写在前面的话 在编程领域有一句人尽皆知的法则“程序 = 数据结构 + 算法”,我个人是不太赞同这句话(因为我觉得程序不仅仅是数据结构加算法),但是在日常的学习和工作中我确认深深感受到数据结构和算法的重 ...

  2. Redis 实现高效不遗漏的事件封装

    虽然Redis有订阅功能,但是订阅功能是实时的,过了这个点,就接收不到消息了. 同时,如果订阅的客户端因为某些特殊原因shutdown了,那也就找不回未处理完整的订阅事件了. 但好在,Redis还有一 ...

  3. 使用CAJViewer 提取PDF文件中的文字

    使用 CAJViewer 7.2 软件,把pdf格式的文件提取出文字. 操作步骤参考:http://jingyan.baidu.com/article/d45ad148cd06e469552b800f ...

  4. Android monkey介绍

    Android monkey介绍 原文地址 1 简略 monkey是android下自动化测试比较重要的的一个工具,该工具可以运行在host端或者设备(模拟器或真实设备).它会向系统发送随机事件流(即 ...

  5. JABX简单介绍

    主要引至http://suo.iteye.com/blog/1233458 一.简介 1.概念是什么:(Java Architecture for XML Binding) 是一个业界的标准,是一项可 ...

  6. 利用百度地图API,获取经纬度坐标

    利用百度地图API,获取经纬度坐标 代码很简单,但在网上没找到现成的获取地图经纬度的页面. 就是想,给当前页面传递一个经纬度,自动定位到此经纬度.然后可以重新选择,选择完返回经纬度. 效果如下: 源代 ...

  7. 【并发编程】AQS学习

    一个简单的示例: package net.jcip.examples; import java.util.concurrent.locks.*; import net.jcip.annotations ...

  8. Spring实战6:利用Spring和JDBC访问数据库

    主要内容 定义Spring的数据访问支持 配置数据库资源 使用Spring提供的JDBC模板 写在前面:经过上一篇文章的学习,我们掌握了如何写web应用的控制器层,不过由于只定义了SpitterRep ...

  9. MySQL指定mysqld启动时所加载的配置文件

    mysqld.exe --init-file=file_name 以下为配置文件参数优化和中文详解: [client]port = 3306socket = /tmp/mysql.sock [mysq ...

  10. bzoj2734 集合选数

    Description <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不能在该子集中 ...