ASP.NET之SqlBulkCopy

简介:
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 
InBlock.gif  sourceconnection.Open(); //打开数据库连接 
InBlock.gif  SqlCommand cmd =  new SqlCommand( "Select * from MSreplication_options"); //通过命令来读取SQL语句 
InBlock.gif  cmd.Connection = sourceconnection; //获取连接方式 
InBlock.gif  SqlDataReader reader = cmd.ExecuteReader(); //开始执和结果集,获取DataReader记录集 
InBlock.gif   //连接目标数据库连接,并且打开数据库连接方式,在此由于调用同一个数据库,连接字符串没有变 
InBlock.gif  SqlConnection destinationConnection =  new SqlConnection(strConnection); 
InBlock.gif  destinationConnection.Open(); 
InBlock.gif   //调用SqlBulkCopy类的方法 
InBlock.gif  SqlBulkCopy bulkCopy =  new SqlBulkCopy(destinationConnection); 
InBlock.gif   //获取目标表的名称 
InBlock.gif  bulkCopy.DestinationTableName =  "destination"
InBlock.gif   //写入DataReader对象 
InBlock.gif  bulkCopy.WriteToServer(reader); 
InBlock.gif   //关闭各个对象 
InBlock.gif  reader.Close(); 
InBlock.gif  sourceconnection.Close(); 
InBlock.gif  destinationConnection.Close(); 


本文转自 BruceAndLee 51CTO博客,原文链接:http://blog.51cto.com/leelei/176503,如需转载请自行联系原作者
相关文章
|
3月前
|
开发框架 前端开发 JavaScript
盘点72个ASP.NET Core源码Net爱好者不容错过
盘点72个ASP.NET Core源码Net爱好者不容错过
65 0
|
3月前
|
开发框架 .NET
ASP.NET Core NET7 增加session的方法
ASP.NET Core NET7 增加session的方法
37 0
|
29天前
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
28 0
|
9月前
|
开发框架 前端开发 JavaScript
ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件
ASP .Net Core 中间件的使用(一):搭建静态文件服务器/访问指定文件
|
开发框架 前端开发 .NET
进入ASP .net mvc的世界
进入ASP .net mvc的世界
86 0
|
存储 开发框架 NoSQL
ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis
ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis
284 0
ASP.NET Core微服务(六)——【.Net Core操作redis】StackExchange.Redis
|
开发框架 前端开发 安全
ASP.NET Core Startup类Config gure()方法|ASP.NET Core 中间件详细说明
目录 Startup 类 Configure() 方法 中间件 使用中间件 Configure 方法 的参数 IApplicationBuilder Extension Methods(拓展方法)--微软提供的中间件
146 0
ASP.NET Core Startup类Config gure()方法|ASP.NET Core 中间件详细说明
|
存储 开发框架 NoSQL
ASP.NET Core+Quartz.Net实现web定时任务
此处我们的项目使用稍复杂的Quartz.net实现web定时任务。
ASP.NET Core+Quartz.Net实现web定时任务
|
开发框架 .NET 应用服务中间件
ASP.NET Core : 一. 概述
ASP.NET Core : 一. 概述
146 0
ASP.NET Core : 一. 概述
|
开发框架 前端开发 .NET
ASP.NET MVC (五、HttpClient接口解析)(6)
ASP.NET MVC (五、HttpClient接口解析)(6)
197 0