这两天公司让做一个导数据的功能,从Excel文件中将数据导出并插入到数据库中,起初我是循环每一行数据,然后一条一条的将数据插入,这样做虽然功能上没什么问题,但是如果数据量大的话,会很影响性能。于是在高人的指点下学习了SQLBulkCopy类,该类主要用于批量迁移数据到数据库中,至于数据源不加限制,只要数据可以加载到DataTable或是IDataReader,就可以利用该类批量导入。下面贴一个例子:
战棋天下变态版下载-战棋天下bt版2.6.60安卓最新版
这是一个效率最高的sql数据表转sql语句的工具。
protectedvoidbutBulkCopy_OnClick(objectsender,EventArgse)
{
stringConStr="database=TEST;uid=sa;pwd=sa;server=(local)";
//使用SqlBulkCopy把内存表DataTable里的数据插入答卷数据表
using(SqlBulkCopybcp=newSqlBulkCopy(ConStr))
{
//指定目标数据库的表名
bcp.DestinationTableName="ARTICLE";
//建立数据源表字段和目标表中的列之间的映射
bcp.ColumnMappings.Add("T","TITLE");
bcp.ColumnMappings.Add("C","CONTENTS");
bcp.ColumnMappings.Add("D","DATA");
//定义生成通知事件之前要处理的行数
bcp.NotifyAfter=1000;
//处理完要处理NotifyAfter的行数时触发的事件
bcp.SqlRowsCopied+=
newSqlRowsCopiedEventHandler(OnRowsCopied);
//写入数据库表
bcp.WriteToServer(dt);
//关闭SqlBulkCopy实例
bcp.Close();
}
}
privatevoidOnRowsCopied(objectsernder,SqlRowsCopiedEventArgse)
{
Response.Write(e.RowsCopied.ToString());
}
DestinationTableName属性定义了要复制表的目标名称
ColumnMappings返回一个SqlBulkCopyColumnMapping项集合,SqlBulkCopyColumnMappingCollection.Add方法参数为数据源类名称,目标表中目标列的名称.也可以先定义一个SqlBulkCopyColumnMapping,然后使用Add方法添加,SqlBulkCopyColumnMapping主要用于与目标数据表的表结构不一致的情况
NotifyAfter指定生成通知事件之前要处理的行数,指定在每次处理行完成的时候发生的事件,比如每次复制了1000行以后就提示1000行复制完成
NorthWindBulkOp.SqlRowsCopied+=
newSqlRowsCopiedEventHandler(OnRowsCopied);
最后WriteToServer方法,把SqlDataReader复制到指定的表中。
展开

美寸减肥app下载-美寸减肥5.3.1 官网ios苹果版
勇者穿越模拟器破解版无限属性免广告下载-勇者穿越模拟器破解版无限属性0.1.13 安卓版
钱龙美股通交易软件-钱龙美股通5.8 1免费版
巴塔木童话听读app下载-巴塔木童话听读app1.0.0 安卓版
购物党自动比价工具下载-购物党网购助手3.0.10 最新版
kompozer中文版下载-KompoZer(最好用的HTML编辑器)0.8b3 中文免费版
漫游飞行家app官方下载-漫游飞行家1.0.0 安卓版
一恋聊天软件下载-一恋聊天软件(一恋视频聊天软件)1.0.0 安卓版
崩坏星穹铁道官服下载安装-崩坏星穹铁道米哈游官服版3.6.0 安卓版
赛博朋克2077闪退崩溃修复补丁下载-赛博朋克2077闪退修复补丁免费版
过期域名抢注工具-悠游域名抢注工具2.01 绿色免费版【助你成功抢注过期域名】
江湖侠客令手游私服1.0.0 sf版
黑马会计考试题库下载-黑马会计题库1.0 官方免费版
框架镜与隐形眼镜度数换算软件1.0 绿色版
龙珠力量胜利者最新版下载-Power Warriors(龙珠力量胜利者手机版)11 修改版
专卖店设计方案-红酒专卖店设计方案word格式免费版
徐州市民通-徐州市民生活通1.0.4 安卓版
魔幻厨房治愈版-魔幻厨房华为版1.21领华为手机
睿思网络监测平台下载-睿思网络监测平台5.0.5872.0 官方最新版
12123违章查询app1.8.5 安卓最新版