mssqlserver 批量插入示例
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 批量插入示例的更多相关文章
- c#批量插入示例
var sql = @"Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcApplication1-20131029153010;I ...
- MongoDB批量更新和批量插入的方式
最近,在调试代码中发现向MongoDB插入或者更新文档记录时若是多条的话都是采用for循环操作的,这样的处理方式会造成数据操作耗时,不符合批量处理的原则:对此,个人整理了一下有关MongoDB的批量更 ...
- c# 数据库批量插入数据SqlBulkCopy 示例
/// <summary> /// 批量插入数据 /// </summary> public static void SqlBulkInsert(DataTable dt, s ...
- 批量插入数据, 将DataTable里的数据批量写入数据库的方法
大量数据导入操作, 也就是直接将DataTable里的内容写入到数据库 通用方法: 拼接Insert语句, 好土鳖 1. MS Sql Server: 使用SqlBulkCopy 2. MySql ...
- SQL语句-批量插入表(表数据插表)
批量插入表(表数据插表) ****1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select value1,val ...
- Hibernate批处理操作优化 (批量插入、更新与删除)
问题描述 我开发的网站加了个新功能:需要在线上处理表数据的批量合并和更新,昨天下午发布上线,执行该功能后,服务器的load突然增高,变化曲线异常,SA教育了我一番,让我尽快处理,将CPU负载降低. 工 ...
- SQL批量删除与批量插入
批量删除: DELETE FROM MyTable WHERE ID IN (1,2); 批量插入: INSERT INTO MyTable(ID,NAME) VALUES(1,'123');INSE ...
- JDBC中的批量插入和乱码解决
字符集-乱码问题 用JDBC访问MySql数据库的时候,如果JDBC使用的字符集和MySql使用的字符集不一致,那么会导致乱码发生.解决办法当时是在使用JDBC的时候指定和数据库一样的字符集.我们可以 ...
- SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)
临时表:Test /****** 对象: Table [dbo].[Test] 脚本日期: 05/10/2013 11:42:07 ******/ SET ANSI_NULLS ON GO SET Q ...
随机推荐
- 通过命令行安装Android app
手动安装安卓app的命令为:adb install -r C:\Users\Lihao\workspace\Appium_Demo\apps\app_F_1.3.0.apk
- json字符串转map
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</ar ...
- Hadoop常见错误解决
1. 通过命令和查看日志文件查看hadoop启动和运行情况 在NameNode端,可以通过 tail -100 /var/log/hadoop/hadoop/hadoop-hadoop-namenod ...
- (转帖)BootStrap入门教程 (三)
上讲回顾:Bootstrap的基础CSS(Base CSS)提供了优雅,一致的多种基础Html页面要素,包括排版,表格,表单,按钮等,能够满足前端工程师的基本要素需求. Bootstrap作为完整 ...
- 纠结的NTP安装过程
为了部署实验用的openstack环境,其中有NTP的安装环节.在这个过程中,真是折腾了一下午...遇到了一些问题! 由于公司内部网络管理的原因,很多网站没有办法访问,比如公开的时间服务站点,我找了几 ...
- 08socket编程
有个SO_REUSEADDR值得注意一下: 服务器端尽可能使用SO_REUSEADDR 在绑定之前尽可能调用setsockopt来设置SO_REUSEADDR套接字选项. 使用SO_REUSEADDR ...
- 剑指offer系列35----序列化二叉树
[题目] * 请实现两个函数,分别用来序列化和反序列化二叉树 * 1 / \ 2 3 /\ /\4 5 6 7 * * 序列化的结果是1,2,#,#,3,4,#,7,#,#,5,#,#,. * 而反序 ...
- 14款经典的MySQL客户端软件
1. EMS MySQL Manager 强大的mysql管理工具,允许用户通过图形界面创建或编辑数据库对象,并提供通过sql语句管理用户和权限,通过图形界面建立sql语句,自动生成html格式的数据 ...
- Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效。文件的删除
内容是google的,测试有效,因为用revel打包的东西删除以后有这个循环bug Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效.文件的删除 关于这个问题我找到的一 ...
- Android SDK 4.0.3 开发环境配置及运行
最近又装了一次最新版本的ADK环境 目前最新版是Android SDK 4.0.3 本文的插图和文本虽然是Android2.2的 步骤都是一样的,如果安装的过程中遇到什么问题,可以留言,我会尽快回复! ...