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. expression encoder 4 安装 出现“已经安排重启您的计算机

    问题: expression encoder 4  安装 出现“已经安排重启您的计算机 解决的办法,注册表数据的修改 开始 运行 regedit HKEY_LOCAL_MACHINE\SYSTEM\C ...

  2. BlueStacks 设置代理服务器 Proxifier指定任意程序的代理服务器

    详见地址: http://www.ccproxy.com/proxifier-tou-ming-dai-li.htm BlueStacks如何使用代理服务器 http://www.360doc.com ...

  3. Myisam and InnoDB

    MyISAM引擎的特点: 1.堆组织表:2.不支持事务:3.数据文件和索引文件分开存储:4.支持全文索引:5.主键索引和二级索引完全一样都是B+树的数据结构,只有是否唯一的区别(主键和唯一索引有唯一属 ...

  4. php发送ssl邮件

    <?php /** * 邮件发送类 * 支持发送纯文本邮件和HTML格式的邮件,可以多收件人,多抄送,多秘密抄送,带附件(单个或多个附件),支持到服务器的ssl连接 * 需要的php扩展:soc ...

  5. Ext JS treegrid 发生的在tree上增加itemclick 与在其它列上增加actioncolumn 发生事件冲突(event conflict)的解决办法

    Ext JS treegrid 发生的在tree上增加itemclick 与在其它列上增加actioncolumn 发生事件冲突(event conflict)的解决办法 最近在适用Ext JS4开发 ...

  6. Angular学习(7)- 模板2

    示例: <!DOCTYPE html> <html ng-app="MyApp"> <head> <title>Study 8< ...

  7. ASP.NET环境下配置FCKEditor并上传图片及其它文件

    文章转自:http://blog.sina.com.cn/s/blog_568e66230100hy6a.html FCKEditor于2009年被更名为新一代的CKEditor和CKFinder,见 ...

  8. SIlverlight外包公司【技术展望】— Silverlight5.1.2最新版本发布,Silverlight 的更新从未停止。

    微软发布新版Silverlight 5, 版本号5.1.20913.0 大家可以到微软网站去下载最新版本网址是 http://www.microsoft.com/getsilverlight/get- ...

  9. Python基础教程【读书笔记】 - 2016/7/7

    希望通过博客园持续的更新,分享和记录Python基础知识到高级应用的点点滴滴! 第四波:第5章  条件.循环和其他语句 [总览]  深入介绍条件语句和循环语句,随后会看到列表推导式如何扮演循环和条件语 ...

  10. 如何解决WebkitBrowser使用出错“Failed to initialize activation context”

    本文转载自:http://www.cnblogs.com/supjia/p/4695671.html 本篇文章主要介绍了"如何解决WebkitBrowser使用出错“Failed to in ...