SqlBulkCopy

        private static void DataTableToSQLServer( DataTable dt)
        {
            string connectionString = GetConnectionString();

            using (SqlConnection destinationConnection =new SqlConnection(connectionString))
            {
                destinationConnection.Open();

                using (SqlBulkCopy bulkCopy =new SqlBulkCopy(destinationConnection))
                {

                    try
                    {

                        bulkCopy.DestinationTableName = "T_EIInformation";//要插入的表的表明
                        bulkCopy.ColumnMappings.Add("Email", "Email");//映射字段名 DataTable列名 ,数据库 对应的列名
                        bulkCopy.ColumnMappings.Add("author", "author");
                        bulkCopy.ColumnMappings.Add("Title", "Title");
                        bulkCopy.ColumnMappings.Add("Type", "Type");
                        bulkCopy.ColumnMappings.Add("confName", "confName");
                        bulkCopy.ColumnMappings.Add("Language", "Language");
                        bulkCopy.ColumnMappings.Add("Publicationyear", "Publicationyear");
                        bulkCopy.ColumnMappings.Add("Conferencelocation", "Conferencelocation");
                        bulkCopy.WriteToServer(dt);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                    }
                    finally
                    {
                        // Close the SqlDataReader. The SqlBulkCopy
                        // object is automatically closed at the end
                        // of the using block.

                    }
                }

            }

        }
时间: 2024-08-25 18:51:03

SqlBulkCopy的相关文章

SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)

临时表:Test /****** 对象: Table [dbo].[Test] 脚本日期: 05/10/2013 11:42:07 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Test]( [ID] [int] IDENTITY(1,1) NOT NULL, [UserID] [int] NOT NULL, [UserName] [nvarchar](50) COLLATE Chines

使用SqlBulkCopy类来批量复制数据

DataTable dt = new DataTable(); dt.Columns.Add("id", typeof(string)); for (int i = 0; i < 100; i++) { DataRow dr = dt.NewRow(); dr["id"] = "sadf" + i; dt.Rows.Add(dr); } using (SqlConnection conn = new SqlConnection(@"

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

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

循环写入Insert 与 SqlBulkcopy

/* Insert by Loop */ cmd.CommandText = "insert into BizSharedStore (BizSharedStoreId,BizSharedId,StoreCode,StartDt,EndDt) values (@BizSharedStoreId,@BizSharedId,@RuleCode);"; cmd.CommandType = CommandType.Text; foreach (var x in query_BizSharedL

批量插入 SqlBulkCopy的测试

关于SqlBulkCopy的测试 最近要做.net关于sql大量插入,找到了sqlbulkcopy(自己google下,应该很多说明了)这个好东西,于是测试下性能,用了三个方法对比: 1)直接用ado.net,for循环N次进行单条插入 2)把N条插入语句拼在一个sql,进行插入 3)直接使用sqlbulkcopy进行插入 代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

C#/.NET使用HttpWebRequest、SqlBulkCopy从API获取数据批量插入DB

小弟新手程序员一枚,代码技术和文章水平均不才.所写文章均为对自己所写所学代码的简单记录,可能对于老手程序员营养价值不高,望莫见怪. 我工作上有个需求:从某处API接口上获取数据(大约1W条而已)并插入到数据库中. 楼主刚毕业菜鸟,没做过批量插入操作.借助baidu搜索得知SqlBulkCopy可以实现.SqlBulkCopy相关的原理,我现在还没了解就不摆弄了,以后补上! (不要问为什么不用google,公司内网就连msdn.microsoft.com都不给上!另外我公司是开发C#/.NET的,

SqlBulkCopy的使用

1.问题:导入大数据量到数据库,用我们普通的SqlHelper来做是每插入一条都是打开连接关闭连接,这样太慢,因此我们会想到让SqlConnection一直打开直到所有数据都插入完成再关闭连接.但是根据数据库连接池,这样速度依然很慢. 2.解决办法: .Net给我们提供了SqlBulkCopy来一次性执行插入,效率和速度要高很多 3.实例: 如:导入手机号码归属地信息 准备材料:"手机号段归属地数据库.txt"文档. 如在Winform中添加按钮,按钮的点击事件中实现. #code p

SqlBulkCopy类进行大数据(10000万条以上)插入测试

好多天没写博客了,刚刚毕业一个多月,在IT的路上真是迷茫啊! 关于上一篇博客中提到的,在进行批量数据插入数据库的时候可以通过给存储过程传递一个类型为Table的参数进行相关操作,在这个过程中本人没有进行效率的测试.后来查找发现可以通过SqlBulkCopy类进行大数据插入操作,本文就来介绍一个这个类的作用并做了相关的效率测试(与Insert语句进行对比). SqlBulkCopy只能向SqlServer表写入数据,该表既可以是同一个服务器上的也可以是远程服务器上的.当然要写入的数据即数据源不单单

SqlBulkCopy 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 bit

使用SqlBulkCopy批量插入,可以快速对大批量的数量插入,性能非常好 在使用时出现“来自数据源的 String 类型的给定值不能转换为指定目标列的类型 bit”异常 为DataTable与要插入的数据表字段位置不一样所至 DataTable与要插入的数据表要字段名,位置,数据类型都一至才可 示例,使用使用SqlBulkCopy插入多个表 public bool BatchInsertUniqeCode(DataTable uniqueCodeProduceContrastDt,DataTa