这是一个效率最高的sql数据表转sql语句的工具。
DestinationTableName属性定义了要复制表的目标名称
ColumnMappings返回一个SqlBulkCopyColumnMapping项集合,SqlBulkCopyColumnMappingCollection.Add方法参数为数据源类名称,目标表中目标列的名称.也可以先定义一个SqlBulkCopyColumnMapping,然后使用Add方法添加,SqlBulkCopyColumnMapping主要用于与目标数据表的表结构不一致的情况
NotifyAfter指定生成通知事件之前要处理的行数,指定在每次处理行完成的时候发生的事件,比如每次复制了1000行以后就提示1000行复制完成
NorthWindBulkOp.SqlRowsCopied+=
newSqlRowsCopiedEventHandler(OnRowsCopied);
最后WriteToServer方法,把SqlDataReader复制到指定的表中。
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,就可以利用该类批量导入。下面贴一个例子:
展开

深圳海米尔-海米尔app(智能定位)1.1 安卓版
DMM Games全CG存档1.0 全剧情版
小精灵录屏软件-录屏小精灵app1.0.6 不限时长免费版
冥峰祭雪[柒末雪]A1传颂终章-冥峰祭雪A1传颂终章免费下载
开运宝app1.0 安卓版
健身房传奇游戏下载-健身房传奇(Fitness Saga)1.0.1b 安卓最新版
傲天不思议地下城游戏下载-傲天不思议地下城手游1.0.0 礼包版
真爱一生软件下载-真爱一生app1.0 苹果版
铁拳7联机版完美存档下载-铁拳7联机版全剧情服装解锁存档完整版
R星游戏社区下载-R星工具箱(Rockstar Games Gallery)1.0 安卓版
图度talk(在线工作管理系统的IM聊天工具)v2.8.11.22490 官方版
快运滴app司机端下载-快运滴司机端4.5.2 官网安卓版
老爹的热狗店破解版togo下载-老爹的热狗店破解版无限金币1.1.2 最新版
倒计时器下载-泡面时间倒计时器v1.0 绿色免费版
生命教育主题班会免费ppt下载-生命教育主题班会ppt课件免费下载
无水印视频提取软件-短视频解析助手(短视频去水印解析助手app)3.0 安卓免费版
Superhero City War: Critical Gangster Strike(超级英雄城市战争关键流氓打击手游)1.2 安卓版
装扮粉彩女孩4.641 中文版
双11淘宝嘉年华-双11淘宝嘉年华素材psd格式高清版
菜鸟橙运司机版app下载-菜鸟橙运司机版app6.11.4 安卓版