c# SqlBulkCopy实现批量从数据集中把数据导入到数据中

今天遇到了一个导入类第一次见 SqlBulkCopy 可以实现从一个数据集导入到数据库中的表中 本来想从数据集中一条条遍历insert到库中

有了这个后发现:

只在把表与数据集的列做一下对应关系,再走一个WriteToServer()方法就全进库里了代码如下(con一定要open()):

 using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=123;database=oa"))
            {
                con.Open();
                using (SqlBulkCopy sbc = new SqlBulkCopy(con))
                {
                    sbc.DestinationTableName = "a";//要导入表的表名 我这个表就是A

                    SqlBulkCopyColumnMapping mp = new SqlBulkCopyColumnMapping("name", "cCode");//对应关系 我把name 列的值导入到 a的cCode列
                    sbc.ColumnMappings.Add(mp);//添加进去
                    using (SqlDataAdapter adp = new SqlDataAdapter("select name from  dbo.bbsCatalog", con))//把name所在的表 查询到datatable中
                    {
                        DataTable dt = new DataTable();
                        adp.Fill(dt);
                        sbc.WriteToServer(dt);//导入到A表中
                    }                 }
            }

            Console.WriteLine("成功");
            Console.ReadKey();

示例代码:

原文地址:https://www.cnblogs.com/SoftWareIe/p/10001008.html

时间: 2024-10-08 10:07:52

c# SqlBulkCopy实现批量从数据集中把数据导入到数据中的相关文章

C# 使用SqlBulkCopy类批量复制大数据

特别注意  sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName); 插入的时候列的顺序可以不一致,但名称和数据类型最好要保存一致.不一致时候,也能进行正确的转换,除了比如DataTime数据类型,不能插入一个无效的string时间字符串. 本文转载:http://zhoufoxcn.blog.51cto.com/792419/166052 参考http://www.cnblogs.co

用SqlBulkCopy实现批量插入数据

1.建立一张测试表 test CREATE TABLE test ( F_Name NVARCHAR(20) NULL, F_Age INT NULL ) 2.SqlBulkCopy批量插入数据 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Data.SqlClient; 5 using System.Data; 6 7 namespace sqlbulkcopy 8

.Net批量插入数据到SQLServer数据库,SqlBulkCopy类批量插入大数据到数据库

批量的的数据导入数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 采用SqlBulkCopy来处理存储数据.SqlBulkCopy存储大批量的数据非常的高效,将内存中的数据表直接的一次性的存储到数据库中,而不需要一次一次的向数据库Insert数据. 经过几次实验,百万级别的数据表,也只需几秒时间内就可以完全的存入数据库中,其速度,比传统的Insert into方法不止快很多倍. 下面看代码: /// <summary> /// 批量插入数据 /// </summary> /

使用asp.net 2.0中的SqlBulkCopy类批量复制数据

介绍:在软件开发中,把数据从一个地方复制到另一个地方是一个普遍的应用. 在很多不同的场合都会执行这个操作,包括旧系统到新系统的移植,从不同的数据库备份数据和收集数据. ASP.NET 2.0有一个SqlBulkCopy类,它可以帮助你从不同的数据源复制数据到SQL SERVER数据库. 本文中我将示范SqlBulkCopy类的不同应用. 数据库设计: 这个数据库的设计还是蛮简单的,它基于Northwind数据库的Products表.另外我还在Northwind数据库中创建了3个表. 详情可以看一

C# 使用 SqlBulkCopy 类批量复制数据到数据库

最近公司需要优化导入的问题,由于之前使用的方式是生成 Insert 语句插入数据库,数据量小的时候还行,但是随着发展数据量渐渐大了,之前的方法性能就跟不上了,于是发现了 SqlBulkCopy 这个类. 使用 SqlBulkCopy 类只能向 SQL Server 表写入数据.但是,数据源不限于 SQL Server:可以使用任何数据源,只要数据可加载到 DataTable 实例或可使用 IDataReader 实例读取数据. public class Conn { private static

批量导入/更新 数据的几种方法

在工作中经常遇到要导入数据的场景. 1 导入全新的数据 2 导入的数据中库中可能已经存在,已经存在的数据不能覆盖,不能变更 3 导入的数据中库中可能已经存在,已经存在的数据主键等不能变化,同时需要更新这些数据的一些字段(比如:积分字段) 第一种最简单,最坑爹的是第三种了. 新手碰到这种问题往往一筹莫展,能想到的最直接的办法就是 一条条获取 ,然后判断,然后 update.这种方式的效率在少量数据的时候还没太大问题,当达到上千上万条时候问题就会出现了. 这种处理方式的资源开销和效率简直“惨绝人寰”

NPOI批量导入大量数据

简介:NPOI批量导入大量数据 使用SqlBulkCopy 可以将datatable里面的大量数据批量复制到数据库中,而不用担心性能问题,比系统中的传统做法(每20行数据执行一遍mydb.execute强多了) SqlBulkCopyColumnMapping(源列名,目标列名) 附代码如下: Try Using sqlblk As New SqlBulkCopy(MyDB.GetSqlConnectionString()) sqlblk.BatchSize = DtInput.Rows.Cou

C#中使用SqlBulkCopy的批量插入和OracleBulkCopy的批量插入

1.首先我们做一下准备工作,在sql server和oracle分别建立一个Student表 oracle中 --创建Student表 -- create table Student( stuId number not null primary key, stuName nvarchar2(20) not null, stuAddress nvarchar2(50) null ) sql server中 --创建Student表-- create table Student( stuId int

[已解决]C#批量高效率导入大数据到数据库[百万级以上]

将几百万条数据导入到数据库中,怎么样高效率的导入?下面我就介绍一个高效率的方法:1.将数据库文件(DB.csv)导入到DataTable中: /// <summary> /// 将CSV文件的数据读取到DataTable中 /// </summary> /// <param name="fileName">CSV文件路径</param> /// <returns>返回读取了CSV数据的DataTable</returns