- 浏览: 7934473 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
我们经常要在一个表中将数据迁移到另一个表,当然,用的方法十分多了。在.net 2.0中,提供了一个sqlbulkcopy类,也可以实现如下的操作,下面简单介绍下。比如一个表如下
CREATE TABLE Person3
(
PersonID int IDENTITY(1,1) PRIMARY KEY,
Name nvarchar(200),
Email nvarchar(200),
Picture image
)
INSERT INTO Person3(Name,Email,Picture)
SELECT Name,Email,Picture FROM Person
假设person表已经存在了,则上面的语句可以往person3表中插入数据(在sql server 2005中执行)。现在我们使用下面的代码来实现
string connectionString = ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;
SqlConnection myConnection = new SqlConnection(connectionString);
SqlCommand myCommand = new SqlCommand("SELECT * FROM Person", myConnection);
myConnection.Open();
SqlDataReader dr = myCommand.ExecuteReader();
SqlConnection myNewConnection = new SqlConnection(connectionString);
myNewConnection.Open();
SqlBulkCopy bulk = new SqlBulkCopy(myNewConnection);
bulk.DestinationTableName = "[Person3]";
try
{
bulk.WriteToServer(dr);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
myNewConnection.Close();
dr.Close();
myConnection.Close();
bulk.Close();
}
SqlBulkCopy bulk = new SqlBulkCopy(myNewConnection);
bulk.DestinationTableName = "[Person3]";
其中,将mynewconnection作为参数传到 sqlbulkcopy类的构造参数中去,并指定目标迁移的表名是person3.之后,再使用bulk.WriteToServer(dr);就可以迁移了。
而上面的person表和person3的结构是完全相同的,那么如果结构不同的,怎么办呢?下面举例子说明,创建一个表person2
CREATE TABLE Person2
(
PersonID int IDENTITY(1,1) PRIMARY KEY,
FirstName nvarchar(200),
LastName nvarchar(200),
Email nvarchar(200),
Picture image
)
如果我们按上面将person表迁移到person2表中去,将会出错,因为字段不同,而我们将采用下面的代码
string connectionString = ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;
SqlConnection myConnection = new SqlConnection(connectionString);
SqlCommand myCommand = new SqlCommand("SELECT * FROM Person", myConnection);
myConnection.Open();
SqlDataReader dr = myCommand.ExecuteReader();
SqlConnection myNewConnection = new SqlConnection(connectionString);
myNewConnection.Open();
SqlBulkCopy bulk = new SqlBulkCopy(myNewConnection);
bulk.DestinationTableName = "[Person2]";
bulk.ColumnMappings.Add("Name", "LastName");
bulk.ColumnMappings.Add("Email", "Email");
bulk.ColumnMappings.Add("Picture", "Picture");
try
{
bulk.WriteToServer(dr);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
myNewConnection.Close();
dr.Close();
myConnection.Close();
bulk.Close();
}
可以看到,这里使用bulk.ColumnMappings.Add(“。。。”,“。。。”)来强制规定,源目标字段和哪一个目标表的字段相匹配了。据说用sqlbulkcopy类,在数据多的情况下,性能是十分好的,呵呵。
发表评论
-
.NET 嵌入式版4.2发布:关键更新抢先看
2012-02-22 14:57 1864作为.NET家族的一员,.Net Micro Framewor ... -
asp.net中模拟测试smtp发信
2011-03-20 18:47 1924在asp.net 中,有时要测试发信SMTP,但如果在单元测试 ... -
vs.net 2010两个数据库方面的好工具
2011-02-14 11:47 1893今天发现vs.net 2010在处理数据库方面的两个不错的工具 ... -
将gridview导出到excel,world,pdf的小结
2011-02-07 22:47 2987下面小结下把gridview的数据导出到excel,world ... -
gridviewtips1:gridview的页脚中的加亮显示和页数显示
2011-01-27 09:58 2387在asp.net 中,要经常显示gridview中的页数,并且 ... -
asp.net 4中的HTML过滤的一个新特性
2011-01-21 09:47 1890在asp.net 4中,有个新增加的对HTML过滤,防止XSS ... -
在vs.net 2010中使用重构方法
2011-01-20 16:55 2198在vs.net 2010中,可以很方便地对一些冗余的代码进行重 ... -
一个比较好的.net 3.5的异常报告类
2011-01-10 14:51 1985发现了一个比较好的异常报告类,其中用到了.net 3.5以上的 ... -
asp.net 4.0中menu菜单的改进
2011-01-03 22:47 2596在asp.net 3.5时,如果用menucontrol时,使 ... -
asp.net 4中的新特性之一:控制URL长度
2010-09-14 23:06 2422asp.net 4中的新特性之一:控制URL长度。在ASP.N ... -
vs.net 2010中使用code snippets
2010-09-09 20:58 1607其实在vs.net 2010中,使用code snippets ... -
百万开发者拥戴!七大.NET著名开源项目
2010-09-07 09:42 2334新翻译了篇帖子,原文发表在 http://publish.i ... -
asp.net 2010中jquery调用webservice
2010-08-30 22:21 2780在asp.net 2010中,在建立web应用时,默认已经在s ... -
.net中的placeholder控件
2005-01-15 20:00 2002最近留意到有人问,NET中的placeholder控件用来做什 ... -
asp.net 中一次性更新DATAGRID中所有记录
2005-01-15 20:03 973在asp.net中,如何一次性 ... -
在asp.net 中实现只允许数字输入的文本框
2005-01-15 20:18 1532在asp.net 中实现只允许数字输入的文本框,其实是十分简单 ... -
一个重构代码的小技巧
2005-01-16 21:58 1162刚开始接触重构,听就听的多了,理论没认真看过,不过今天发现,将 ... -
防止SQL注入攻击
2005-02-05 14:42 1174看了本期ASP。NET杂志里的一篇讲防止SQL注入攻击的文章, ... -
优秀.net 控件包介绍
2005-02-18 19:47 1707在oday上看到得,将介绍摘录在这里 NetAdvantage ... -
vs.net 2005中的ConfigurationManager
2005-05-06 18:11 1684vs.net 2005中的ConfigurationManag ...
相关推荐
此外,ASP.NET 2.0还引入了SqlBulkCopy类,用于快速将大量数据从一个数据源复制到SQL Server表中,这是批处理的另一种形式。SqlBulkCopy非常适合一次性插入大量记录,而无需为每条记录创建和执行单独的INSERT语句。 ...
在IT行业中,数据库的数据操作是核心任务之一,而高效的数据拷贝处理对于系统性能和数据迁移至关重要...通过深入理解并运用SqlBulkCopy类,开发者可以有效提升数据库操作的效率,特别是在数据迁移、备份恢复等场景下。
本文档将详细介绍如何在ASP.NET 2.0环境中创建数据访问层,并在此基础上构建业务逻辑层和表现层。 #### 数据访问层(DAL)的作用 数据访问层的主要功能是与数据库进行交互。它负责执行对数据库的操作,如查询、插入...
ADO.NET 2.0 是微软开发的一个用于处理数据访问的框架,它在.NET Framework中扮演着核心角色。这个"Pro ADO.NET 2.0 章节源码"的压缩包提供了该书籍中各章节的源代码示例,旨在帮助读者深入理解ADO.NET 2.0的工作...
ADO.NET 2.0 是微软.NET Framework的重要组件,主要用于数据访问和管理。...这些特性在ADO.NET 2.0中增强了数据访问的灵活性、性能和可管理性,使得开发人员能够更加高效地处理数据操作,尤其是在大型企业级应用中。
本资源实现了利用sqlBulkCopy实现大批量传输数据,提供数据库,数据库中有一个sql语句将该语句执行一次即可向数据表中插入十万条数据,根据需要可执行多次。 本资源使用C#语言,数据库为sqlserver,经测试六十万条...
在C#编程中,`SqlBulkCopy`类是用于高效地将大量数据从源(如DataTable或IDataReader)批量复制到SQL Server数据库表中的工具。这个类特别适用于需要快速迁移大量数据的场景,其性能远优于使用INSERT语句逐行插入...
此外,ADO.NET在2.0版本中也得到了增强,新增了Dataset的Merge方法,用于合并两个数据集,以及SqlBulkCopy类,允许快速大量地将数据导入到SQL Server表中。还有ASP.NET的改进,如AJAX支持,使得Web应用程序能够实现...
在ASP.NET 2.0中处理数据库备份与恢复,可以帮助开发者确保在系统故障、数据丢失或恶意攻击时能够快速恢复业务正常运行。 首先,我们需要理解数据库备份的基本概念。数据库备份是将数据库中的数据复制到其他存储...
在ASP.NET开发中,有时我们需要将Excel数据批量导入到SQL Server数据库中,这在数据分析、报表生成或系统迁移等场景中非常常见。本教程将详细解释如何实现这一功能,主要涉及的技术点包括: 1. **读取Excel数据**:...
在ASP.NET开发中,将Excel文件导入数据库是一项常见的任务,特别是在数据处理和分析场景下。以下是对这个主题的详细说明: 1. **Excel文件读取**:首先,我们需要使用一个库来读取Excel文件。在.NET框架中,可以...
下面的控制台应用程序演示如何使用 SqlBulkCopy 类加载数据。在此示例中,使用 SqlDataReader 将数据从 SQL Server 2005 AdventureWorks 数据库中的 Production.Product 表复制到同一数据库中的相似表。 重要说明...
在ASP.NET开发中,处理Excel数据的导入与导出是一项常见的任务。这通常涉及到与Excel文件的交互,以及数据在数据库中的存储。本篇将详细阐述如何使用ASP.NET结合DataTable和DataGrid实现Excel数据的导出,以及如何将...
在Asp.net开发环境中,Excel数据的导入是一项常见的任务,特别是在需要从电子表格批量导入数据到数据库时。这里我们将深入探讨如何在Asp.net中实现Excel数据的导入,并将其存储到SQL Server 2005数据库中。 首先,...
在.NET框架中,C#提供了一个非常强大的工具——SqlBulkCopy类,用于高效地将大量数据从一个数据源批量插入到SQL Server数据库中。相比于传统的单条INSERT INTO语句,SqlBulkCopy在处理大规模数据导入时能显著提高...
在ASP.NET中,将Excel数据导入到数据库是一个常见的任务,特别是在处理大量结构化数据时。以下是一些关于这个主题的关键知识点: 1. **文件读取**:首先,你需要使用一个库来读取Excel文件。在.NET框架中,可以使用...
在此贴上我的Demo:SqlBulkCopy.rar 代码如下: using System; using System.Diagnostics; using System.Data; using System.Data.SqlClient; using Microsoft.ApplicationBlocks.Data; namespace ...
C# 使用SqlBulkCopy类批量复制大数据
SqlBulkCopy是.NET框架中用于高效批量插入数据到SQL Server数据库的一个强大工具。在SQL Server 2005及后续版本中,它被广泛应用于大数据量的导入操作,以显著提高性能并减少与数据库的交互次数。本实例将探讨如何...
这是一个常见的需求,特别是在数据迁移、数据处理或数据分析场景中。 在BS(Browser-Server)架构中,用户通过浏览器与服务器进行交互,而服务器端的代码负责处理逻辑和数据操作。在这个案例中,C#源代码是运行在...