使用SqlBulkCopy进行数据大批量的迁移_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

使用SqlBulkCopy进行数据大批量的迁移

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:迁移数据进行使用
黑客防线网安网讯:  在ASP.NET 2.0中提供了一个新的类SqlBulkCopy类,它在性能上的优势更超过了上面的方法,它可以通过让DataSet或是DataReader中大量的数据通过数据流直接进行装载,然后可以将这些记录添加...

  在ASP.NET 2.0中提供了一个新的类SqlBulkCopy类它在性能上的优势更超过了上面的方法它可以通过让DataSet或是DataReader中大量的数据通过数据流直接进行装载,然后可以将这些记录添加到指定的数据表中

  SqlBulkCopy类只有在SQL Server的表中写入数据,但在使用其它的数据库时,可以通过数据源来使用,SqlBulkCopy类主要包括一个实例方法WriteToServer,它用来把数据从一个数据源传输到另外一个数据源WriteToServer的方法可以快速的写入DataRow[]数组数据,DataTable和DataReader。在实际开发的过程中,可以视情况而定,选择我们所喜欢的方法,我们看它使用的方法:

  WriteToServer(DataTable)写入数据表

  WriteToServer(DataRow[])批次写入数据行

  WriteToServer(DataTable,DataRowState)按行状态写入数据库表

  WriteToServer(DataReader)写入DataReader对象

  在多数情况下,我们选择最好的方法是DataReader对象,因为DataReader是一个读取只向前和只读流的方式,所以它要比DataTable和DataRows[]更快,我们现在来看看下面的代码,它用来把数据从一张表中传输到另一张表中。

  代码清单:

   string strConnection = ConfigurationManager.AppSettings["conStr"].ToString();//读取Web.config文件中的数据库连接字符串
  SqlConnection sourceconnection = new SqlConnection(strConnection);//数据的连接方式是SQL Server
  sourceconnection.Open();//打开数据库连接
  SqlCommand cmd = new SqlCommand("Select * from MSreplication_options");//通过命令来读取SQL语句
  cmd.Connection = sourceconnection;//获取连接方式
  SqlDataReader reader = cmd.ExecuteReader();//开始执和结果集,获取DataReader记录集
  //连接目标数据库连接,并且打开数据库连接方式,在此由于调用同一个数据库,连接字符串没有变
  SqlConnection destinationConnection = new SqlConnection(strConnection);
  destinationConnection.Open();
  //调用SqlBulkCopy类的方法
  SqlBulkCopy bulkCopy = new SqlBulkCopy(destinationConnection);
  //获取目标表的名称
  bulkCopy.DestinationTableName = "destination";
  //写入DataReader对象
  bulkCopy.WriteToServer(reader);
  //关闭各个对象
  reader.Close();
  sourceconnection.Close();
  destinationConnection.Close();

  上例中,我们使用的是SQL Server 2005的master数据库,我们在使用SqlBulkCopy的时候,需要了解一下它的几个重要的属性:

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-9735-1.html
网站维护教程更新时间:2012-03-21 02:24:41  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer