1.Bcp批拷贝效率高,几百万数据小意思。完全没有什么压力。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace SqlBulkCopyDemo
{
public partial class Test : System.Web.UI.Page
{
public string SQLCONN = System.Configuration.ConfigurationManager.AppSettings["SQLCONN"].ToString();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CreateXML();
//SqlBulkCopy();
}
}
#region //创建XML文件
public void CreateXML()
{
using (SqlConnection conn = new SqlConnection(SQLCONN))
{
SqlDataAdapter da = new SqlDataAdapter("Select * from Student with(nolock)", conn);
DataSet ds = new DataSet();
da.Fill(ds);
ds.WriteXml(Server.MapPath(@"XMLS\Student.xml"));
}
}
#endregion
#region //SqlBulkCopy批量导入数据
public void SqlBulkCopy()
{
DataSet ds = new DataSet();
DataTable sourceData = new DataTable();
ds.ReadXml(Server.MapPath(@"XMLS\Student.xml"));
sourceData = ds.Tables[0];
using (SqlConnection conn = new SqlConnection(SQLCONN))
{
conn.Open();
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(SQLCONN))
{
bulkCopy.ColumnMappings.Add("StudName", "StudName");
bulkCopy.ColumnMappings.Add("Sex", "Sex");
bulkCopy.ColumnMappings.Add("Age", "Age");
bulkCopy.ColumnMappings.Add("Birthday", "Birthday");
bulkCopy.ColumnMappings.Add("Tel", "Tel");
bulkCopy.ColumnMappings.Add("Email", "Email");
bulkCopy.ColumnMappings.Add("Address", "Address");
bulkCopy.ColumnMappings.Add("AddTime", "AddTime");
bulkCopy.DestinationTableName = "Student";
bulkCopy.WriteToServer(sourceData);
}
}
}
#endregion
#region //SqlBulkCopy批量导入数据(事务)
public void TransactionSqlBulkCopy()
{
DataSet ds = new DataSet();
DataTable sourceData = new DataTable();
ds.ReadXml(Server.MapPath(@"XMLS\Student.xml"));
sourceData = ds.Tables[0];
using (SqlConnection conn = new SqlConnection(SQLCONN))
{
conn.Open();
SqlTransaction Transaction=conn.BeginTransaction();//开启事务
using (SqlBulkCopy BulkCopy = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default,Transaction))
{
try
{
BulkCopy.ColumnMappings.Add("StudName", "StudName");
BulkCopy.ColumnMappings.Add("Sex", "Sex");
BulkCopy.ColumnMappings.Add("Age", "Age");
BulkCopy.ColumnMappings.Add("Birthday", "Birthday");
BulkCopy.ColumnMappings.Add("Tel", "Tel");
BulkCopy.ColumnMappings.Add("Email", "Email");
BulkCopy.ColumnMappings.Add("Address", "Address");
BulkCopy.ColumnMappings.Add("AddTime", "AddTime");
BulkCopy.DestinationTableName = "Student";
BulkCopy.WriteToServer(sourceData);
BulkCopy.ColumnMappings.Clear();
Transaction.Commit();//事务提交
}
catch
{
Transaction.Rollback();//事务回滚
}
finally
{
Transaction.Dispose();//事务释放
}
}
}
}
#endregion
}
}
分享到:
相关推荐
sybase数据库 bcp批量备份恢复数据库的详细操作
bcp导入导出SQL Server和Sybase数据库数据
数据库中的一个表快速导入另一个数据库中。 用bcp导入数据 按照数据表结构创建相应的结构,利用bcp转换数据
利用BCP导入导出数据库数据为TXT等文本数据
BCP批量导入excel数据到sqlserver相关资料整理
此方法适用于索引坏,DBCC不能修复的数据库,另置疑数据库也可用此方法修复(改成紧急模式下就可以访问置疑数据库),只要SELECT能出数据就能倒出来!
数据库损坏如何修复(bcp).txt 数据库损坏如何修复(bcp).txt数据库损坏如何修复(bcp).txt数据库损坏如何修复(bcp).txt数据库损坏如何修复(bcp).txt
这是一个数据初始化工具,数据导出:在ServerDbConfig.cfg文件里配置好数据库访问所需要的信息,在sql文件下配置好要导出的SqlFiles,执行批处理DBUpdator_Normal.bat,就可以...就可以将文本形式的数据导入到数据库中。
可以将MSSQL数据库导出,创建同样的数据库后在进行导入,通过BCP的方式,简单,方便,快捷!在执行以下命令时,因为原数据库中的某些表可能有损坏,会导致执行失败,在错误信息前一行会显示该表名。为了让 语句能...
SqlBulkCopy提供了一种将数据复制到Sql Server数据库表中高性能的方法。SqlBulkCopy 包含一个方法 WriteToServer,它用来从数据的源复制数据到数据的目的地。 WriteToServer方法可以处理的数据类型有DataRow[]数组,...
sybase数据库bcp导入导出数据报错处理以及注意事项
批量复制程序(BCP)是Microsoft SQL Server中的一个命令行实用程序。使用BCP,我们可以导入并可从SQL Server数据库中快速而轻松地导出数据。任何使用这个功能的数据库管理员都承认BCP是一个关键工具。
说明 Microsoft SQL Server 6.5 中的 bcp 实用工具不支持大容量复制到包含 sql_variant 或 bigint 数据类型的表。 data_file 大容量复制表或视图到磁盘(或者从磁盘复制)时所用数据文件的完整路径。当将数据大...
在使用bcp导入文本文件到数据库是错如下: SQLState = 22001, NativeError = 0 Error = [Microsoft][ODBC SQL Server Driver]字符串数据,右截位
SQL2005的bcp命令-批量快速导入导出数据,公司内部人员写的资料,希望对大家有帮助
bcp 复制工具介绍bcp命令是SQL Server提供的一个快捷的数据导入导出工具。使用它不需要启动任何图形管理工具就能以高效的方式导入导出数据。
bcp是微软SQLServer数据库系统的命令行工具,用于进行大数据量的导入导出,该工具简单实用、效率极高,本文总结了bcp命令操作的各种设置开关功能含义和使用方法,可以为需要的用户提供有益帮助。
在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中。下面将详细讨论如何利用bcp导入导出数据。 1. bcp的主要参数介绍 bcp共有四个动作可以选择。 (1)...
用bcp从文本文件导入数据到sybase中,比如: 数据库服务器是mydb 表名是table_name 数据文件是 data_file 用户名是user 密码是passwd 数据库服务名是 db_name 那么完整的写法是: bcp mydb..table_name in ./data_file...
本文实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,最好的办法是使用bcp,也就是System.Data.SqlClient.SqlBulkCopy 类来实现。不但速度快,...