必胜高考网_全国高考备考和志愿填报信息平台

必勝高考網 > 計算機類 > 計算機等級 > 資訊 >

三級:使用BulkCopy將大量數據復制到數據庫

時間: 家輝2 資訊

  CREATE TABLE TEMP_ORDERS

  (

  TEMP_ORDERID INT,

  TEMP_CUSTOMERID NCHAR(5),

  TEMP_ORDERDATE DATETIME,

  TEMP_SHIPNAME NVARCHAR(40)

  )

  下面為模擬程序

  protected void Page_Load(object sender, EventArgs e)

  {

  #region 從NorthWind的Orders表獲取要插入的數據

  DataTable dtNorthWindOrders = new DataTable();

  using ( SqlConnection northWindConnection = new SqlConnection( "Data Source=.;Initial Catalog=NorthWind;Integrated Security=True" ) )

  {

  using ( SqlDataAdapter northWindAdapter = new SqlDataAdapter( "SELECT ORDERID,CUSTOMERID,ORDERDATE,SHIPNAME FROM ORDERS" , northWindConnection ) )

  {

  northWindAdapter.Fill( dtNorthWindOrders );

  }

  }

  #endregion

  using ( SqlConnection tempdbConnection = new SqlConnection( "Data Source=.;Initial Catalog=Tempdb;Integrated Security=True" ) )

  {

  tempdbConnection.Open( );

  using ( SqlTransaction tran = tempdbConnection.BeginTransaction( ) )

  {

  SqlBulkCopy bulkCopyOrders = new SqlBulkCopy( tempdbConnection , SqlBulkCopyOptions.Default , tran );

  bulkCopyOrders.DestinationTableName = "TEMP_ORDERS";

  //將數據源表字段和目標表的字段做個映射

  bulkCopyOrders.ColumnMappings.Add( "ORDERID" , "TEMP_ORDERID" );

  bulkCopyOrders.ColumnMappings.Add( "CUSTOMERID" , "TEMP_CUSTOMERID" );

  bulkCopyOrders.ColumnMappings.Add( "ORDERDATE" , "TEMP_ORDERDATE" );

  bulkCopyOrders.ColumnMappings.Add( "SHIPNAME" , "TEMP_SHIPNAME" );

  bulkCopyOrders.BulkCopyTimeout = 1000;

  //每處理10行觸發一個事件向頁面上輸出一個消息

  bulkCopyOrders.SqlRowsCopied += new SqlRowsCopiedEventHandler( onRowsCopy );

  bulkCopyOrders.NotifyAfter = 10;

  try

  {

  bulkCopyOrders.WriteToServer( dtNorthWindOrders );

  tran.Commit( );

  }

  catch ( Exception ex )

  {

  Response.Write( ex.ToString( ) );

  }

  finally

  {

  dtNorthWindOrders = null;

  }

  }

  }

  }

  private void onRowsCopy ( object Sender , SqlRowsCopiedEventArgs args )

  {

  Response.Write("已復制:"+ args.RowsCopied.ToString( ) + "" );

  }

  通過SQL SERVER 事件探察器發現執行的SQL為:

  insert bulk TEMP_ORDERS ([TEMP_ORDERID] Int, [TEMP_CUSTOMERID] NChar(5) COLLATE Chinese_PRC_CI_AS, [TEMP_ORDERDATE] DateTime, [TEMP_SHIPNAME] NVarChar(40) COLLATE Chinese_PRC_CI_AS)

  通過運行程序可以看出這個速度是相當的快 , 使用這個方法的最大優點是 : 減少對數據庫的訪問次數 .

  WriteToServer不僅可以處理 DataTable 對象 , 還可以處理 DataReader , DataRow 對象數組。

56095 主站蜘蛛池模板: 精密模具加工制造 - 富东懿| 专业生产动态配料系统_饲料配料系统_化肥配料系统等配料系统-郑州鑫晟重工机械有限公司 | (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | 27PR跨境电商导航 | 专注外贸跨境电商 | EPDM密封胶条-EPDM密封垫片-EPDM生产厂家 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | 湿地保护| 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 - 杭州标识标牌|文化墙|展厅|导视|户内外广告|发光字|灯箱|铭阳制作公司 | 高尔夫球杆_高尔夫果岭_高尔夫用品-深圳市新高品体育用品有限公司 | 贵州成人高考网_贵州成考网 | 2025世界机器人大会_IC China_半导体展_集成电路博览会_智能制造展览网 | 安徽净化工程设计_无尘净化车间工程_合肥净化实验室_安徽创世环境科技有限公司 | 衬四氟_衬氟储罐_四氟储罐-无锡市氟瑞特防腐科技有限公司 | 智能交通网_智能交通系统_ITS_交通监控_卫星导航_智能交通行业 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 高温高压釜(氢化反应釜)百科| 数码管_LED贴片灯_LED数码管厂家-无锡市冠卓电子科技有限公司 | 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 自动化改造_智虎机器人_灌装机_贴标机-上海圣起包装机械 | 缠绕机|缠绕膜包装机|缠绕包装机-上海晏陵智能设备有限公司 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 乙炔气体报警装置|固定式氯化氢检测仪|河南驰诚电气百科 | 药品冷藏箱厂家_低温冰箱_洁净工作台-济南欧莱博电子商务有限公司官网 | 楼梯定制_楼梯设计施工厂家_楼梯扶手安装制作-北京凌步楼梯 | 石栏杆_青石栏杆_汉白玉栏杆_花岗岩栏杆 - 【石雕之乡】点石石雕石材厂 | 碳刷_刷握_集电环_恒压簧_电刷厂家-上海丹臻机电科技有限公司 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | 蜗轮丝杆升降机-螺旋升降机-丝杠升降机厂家-润驰传动 | 桁架机器人_桁架机械手_上下料机械手_数控车床机械手-苏州清智科技装备制造有限公司 | SMC-ASCO-CKD气缸-FESTO-MAC电磁阀-上海天筹自动化设备官网 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 苏州注册公司_苏州代理记账_苏州工商注册_苏州代办公司-恒佳财税 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 哈希PC1R1A,哈希CA9300,哈希SC4500-上海鑫嵩实业有限公司 | 首页|成都尚玖保洁_家政保洁_开荒保洁_成都保洁 | 无线联网门锁|校园联网门锁|学校智能门锁|公租房智能门锁|保障房管理系统-KEENZY中科易安 | 乐之康护 - 专业护工服务平台,提供医院陪护-居家照护-居家康复 |