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());
}
这两天公司让做一个导数据的功能,从Excel文件中将数据导出并插入到数据库中,起初我是循环每一行数据,然后一条一条的将数据插入,这样做虽然功能上没什么问题,但是如果数据量大的话,会很影响性能。于是在高人的指点下学习了SQLBulkCopy类,该类主要用于批量迁移数据到数据库中,至于数据源不加限制,只要数据可以加载到DataTable或是IDataReader,就可以利用该类批量导入。下面贴一个例子:
DestinationTableName属性定义了要复制表的目标名称
ColumnMappings返回一个SqlBulkCopyColumnMapping项集合,SqlBulkCopyColumnMappingCollection.Add方法参数为数据源类名称,目标表中目标列的名称.也可以先定义一个SqlBulkCopyColumnMapping,然后使用Add方法添加,SqlBulkCopyColumnMapping主要用于与目标数据表的表结构不一致的情况
NotifyAfter指定生成通知事件之前要处理的行数,指定在每次处理行完成的时候发生的事件,比如每次复制了1000行以后就提示1000行复制完成
NorthWindBulkOp.SqlRowsCopied+=
newSqlRowsCopiedEventHandler(OnRowsCopied);
最后WriteToServer方法,把SqlDataReader复制到指定的表中。
这是一个效率最高的sql数据表转sql语句的工具。
乐鱼直播推荐 乐鱼体育卡吗 欧亚体育用品 江苏体育局网 一中体育老师展开

传说中的犬夜叉游戏下载-传说中的犬夜叉越南服安装器v11.8.02最新版
SuperCacheII desktop v4.1 汉化破解版 XP|2003双版本
生活Plus商家版下载-生活Plus商家版v6.5.0 安卓版
Metamo安卓下载-Metamo手游(色彩爆炸)0.0.26 安卓版
点点修梯(点点电梯修理工具)2.0.3 免费版
东京中文地图app1.5.5 中文高清版
全时会议系统下载-全时云会议系统最新版6.5.220122 手机版
途众好车APP下载-途众好车APP3.1.9 最新版
速排名优化软件下载-速排名优化工具v10.9.91 官方版
下雪了的图片下载-下雪了带字图片大全精选版
苹果版警察叔叔app下载-警察叔叔app官网3.1.7 最新版
星界边境复制枪MOD下载-星界边境复制枪MOD完整版免费下载【汉化版】
ACGN社区手机版下载-ACGN社区app1.5.73 匿名版
物流指南app下载-物流指南手机版8.0.017 官网最新版
枕聊语音最新版本下载-枕聊语音官方版2.3.3 安卓版
初中英语宝典app-初中英语提高宝典app2.1 教材同步版
英雄奇迹游戏下载-英雄奇迹手游1.0官方版
收银系统-小东家连锁收银软件1.0.0 官方版
姪少女汉化版下载-姪少女中文版(Princess Spring Flower Salon)1.0安卓完整版
URL链接转发工具1.0 绿色免费版