`
hududumo
  • 浏览: 238301 次
文章分类
社区版块
存档分类
最新评论

bcp批量复制数据到数据库中

 
阅读更多

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
    }
}

分享到:
评论

相关推荐

    BCP批量拷贝数据操作.doc

    sybase数据库 bcp批量备份恢复数据库的详细操作

    bcp导入导出数据

    bcp导入导出SQL Server和Sybase数据库数据

    数据库之间数据的复制

    数据库中的一个表快速导入另一个数据库中。 用bcp导入数据 按照数据表结构创建相应的结构,利用bcp转换数据

    利用BCP导入导出数据库为文本数据

    利用BCP导入导出数据库数据为TXT等文本数据

    BCP命令导入导出数据

    BCP批量导入excel数据到sqlserver相关资料整理

    bcp数据库置疑或损坏数据导出方法

    此方法适用于索引坏,DBCC不能修复的数据库,另置疑数据库也可用此方法修复(改成紧急模式下就可以访问置疑数据库),只要SELECT能出数据就能倒出来!

    数据库损坏如何修复(bcp).txt

    数据库损坏如何修复(bcp).txt 数据库损坏如何修复(bcp).txt数据库损坏如何修复(bcp).txt数据库损坏如何修复(bcp).txt数据库损坏如何修复(bcp).txt

    Sql Server数据库BCP导入导出工具

    这是一个数据初始化工具,数据导出:在ServerDbConfig.cfg文件里配置好数据库访问所需要的信息,在sql文件下配置好要导出的SqlFiles,执行批处理DBUpdator_Normal.bat,就可以...就可以将文本形式的数据导入到数据库中。

    数据库bcp导数据方法.txt

    可以将MSSQL数据库导出,创建同样的数据库后在进行导入,通过BCP的方式,简单,方便,快捷!在执行以下命令时,因为原数据库中的某些表可能有损坏,会导致执行失败,在错误信息前一行会显示该表名。为了让 语句能...

    SqlBulkCopy(批量复制)使用方法

    SqlBulkCopy提供了一种将数据复制到Sql Server数据库表中高性能的方法。SqlBulkCopy 包含一个方法 WriteToServer,它用来从数据的源复制数据到数据的目的地。 WriteToServer方法可以处理的数据类型有DataRow[]数组,...

    sybase数据库 bcp问题总结

    sybase数据库bcp导入导出数据报错处理以及注意事项

    BCP数据导入导出实例讲解

    批量复制程序(BCP)是Microsoft SQL Server中的一个命令行实用程序。使用BCP,我们可以导入并可从SQL Server数据库中快速而轻松地导出数据。任何使用这个功能的数据库管理员都承认BCP是一个关键工具。

    BCP详细参数.txt

    说明 Microsoft SQL Server 6.5 中的 bcp 实用工具不支持大容量复制到包含 sql_variant 或 bigint 数据类型的表。 data_file 大容量复制表或视图到磁盘(或者从磁盘复制)时所用数据文件的完整路径。当将数据大...

    bcp导库报错 错误字符串数据,右截位

    在使用bcp导入文本文件到数据库是错如下: SQLState = 22001, NativeError = 0 Error = [Microsoft][ODBC SQL Server Driver]字符串数据,右截位

    SQL2005的bcp命令-批量快速导入导出数据

    SQL2005的bcp命令-批量快速导入导出数据,公司内部人员写的资料,希望对大家有帮助

    bcp 复制工具介绍

    bcp 复制工具介绍bcp命令是SQL Server提供的一个快捷的数据导入导出工具。使用它不需要启动任何图形管理工具就能以高效的方式导入导出数据。

    bcp—SQLServer命令行数据导入导出工具使用总结.txt

    bcp是微软SQLServer数据库系统的命令行工具,用于进行大数据量的导入导出,该工具简单实用、效率极高,本文总结了bcp命令操作的各种设置开关功能含义和使用方法,可以为需要的用户提供有益帮助。

    sqlserver bcp(数据导入导出工具)一般用法与命令详解

    在导入导出数据时,可以使用默认值或是使用一个格式文件将文件中的数据导入到数据库或将数据库中的数据导出到文件中。下面将详细讨论如何利用bcp导入导出数据。 1. bcp的主要参数介绍 bcp共有四个动作可以选择。 (1)...

    bcp常见问题集合

    用bcp从文本文件导入数据到sybase中,比如: 数据库服务器是mydb 表名是table_name 数据文件是 data_file 用户名是user 密码是passwd 数据库服务名是 db_name 那么完整的写法是: bcp mydb..table_name in ./data_file...

    c#实现excel数据高效导入到sql数据库

    本文实现在c#中可高效的将excel数据导入到sqlserver数据库中,很多人通过循环来拼接sql,这样做不但容易出错而且效率低下,最好的办法是使用bcp,也就是System.Data.SqlClient.SqlBulkCopy 类来实现。不但速度快,...

Global site tag (gtag.js) - Google Analytics