欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap FreeTalk
   您现在位于: 首页技术专栏数据库 → 正文
巧用Bulk Copy将大量的数据复制到数据库
08-01-27 00:00:00 作者:赛迪网 出处:赛迪网

假如我们一次准备向数据库服务器提交多条记录 , 一般可能会执行多次Insert命令 , 但这样做就要为插入的每个记录执行一次与数据库服务器的往返 , 显然这会给服务器增加很多的压力 , 效率方面也会大大的降低。

.net Framework 2.0新增功能Bulk Copy可以很快将大量数据加载到数据库中 , 现在我们来利用这一新功能来实现上述功能.

这里从SQL Server 2000的NorthWind 的Orders表加载数据到DateTable模拟要向数据库服务器提交的多条记录集 . 用Tempdb库来模拟目标数据库服务器.

首先我们需要在Tempdb 建一个表temp_orders


  USE TEMPDB
  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_ORDERDA

9 7 3 1 2 4 8 :

(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  
    无相关新闻

    关于我们友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
     
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.
     

                   滇ICP备05006901号