SqlBulkCopy批量添加数据

var sqlconn = ConfigurationManager.ConnectionStrings["SQLConnStringRead"].ConnectionString;
            string sql = "select * from TicketRecord where 1=2";
            //Database db = new Database(sqlconn);
            //var ds = db.QueryExtend(sql);

            DataTable ImportDT = SqlHelper.ExecuteDataTable(SqlHelper.SQLConnStringRead, CommandType.Text, sql);
            for (int i = 1; i <= count; i++)
            {
                DataRow dr = ImportDT.NewRow();
                var tn = "SK".PadRight(8 - i.ToString().Length, ‘0‘) + i;
                dr["TicketNumber"] = tn;
                dr["SceneryId"] = 0;
                dr["SceneryName"] = "";
                dr["EnterpriseId"] = 0;
                dr["EnterpriseName"] = "";
                dr["BatchNumber"] = "";
                dr["SerialId"] = "";
                dr["ParentId"] = 0;
                dr["TicketClassId"] = 0;
                dr["TicketClassName"] = "";
                dr["TicketTypeId"] = 0;
                dr["TicketTypeName"] = "";
                dr["RetailPrice"] = 0;
                dr["Discount"] = 0;
                dr["PeopleCount"] = 0;
                dr["TotalAmount"] = 0;
                dr["RefundPackageNum"] = 0;
                dr["RefundNum"] = 0;
                dr["RefundAmount"] = 0;

                dr["FreePersonCount"] = 0;
                dr["ValidStartTime"] = "2015-08-12";
                dr["ValidEndTime"] = "2015-08-12";
                dr["SaleDate"] = "2015-08-12";
                dr["UseNumber"] = 0;
                dr["HasCheckedNum"] = 0;
                dr["PayType"] = 0;
                dr["PayStatus"] = 0;
                dr["TicketStatus"] = 0;
                dr["DrawWay"] = 0;
                dr["PrintType"] = 0;
                dr["PackageNum"] = 0;
                dr["HostName"] = "";
                dr["RowStatus"] = 0;
                dr["CreatorId"] = 0;
                dr["CreateBy"] = "";
                dr["CreateOn"] = "2015-08-12";
                dr["UpdateId"] = 0;
                dr["UpdateBy"] = "";
                dr["UpdateOn"] = "2015-08-12";
                dr["Prefix"] = "";
                dr["Postfix"] = "";
                dr["MidNum"] = "";
                dr["Remark"] = "";
                dr["BookMobile"] = "";
                dr["ActivateDate"] = "2015-08-12";
                dr["InsidePrice"] = 0;

                ImportDT.Rows.Add(dr);
            }
            SqlConnectionStringBuilder sqlcsb = new SqlConnectionStringBuilder();
            sqlcsb.ConnectionString = ConfigurationManager.ConnectionStrings["SQLConnStringRead"].ConnectionString;
            SqlConnection SqlConn = new SqlConnection(sqlcsb.ConnectionString);
            SqlConn.Open();
            SqlBulkCopy bulkCopy = new SqlBulkCopy(SqlConn); ;
            bulkCopy.BatchSize = count;
            bulkCopy.BulkCopyTimeout = 500000000;
            bulkCopy.DestinationTableName = "TicketRecord";
            bulkCopy.WriteToServer(ImportDT);
            bulkCopy.Close();
            SqlConn.Close();
时间: 2024-10-19 15:21:18

SqlBulkCopy批量添加数据的相关文章

EF批量添加数据性能慢的问题的解决方案

//EF批量添加数据性能慢的问题的解决方案 public ActionResult BatchAdd() { using (var db = new ToneRoad.CEA.DbContext.DbContext()) { //**********************第一种解决方案 直接使用sql********************** string sqls = ""; for (int i = 0; i < 100000; i++) { sqls += "

.Net中批量添加数据的几种实现方法比较

在.Net中经常会遇到批量添加数据,如将Excel中的数据导入数据库,直接在DataGridView控件中添加数据再保存到数据库等等. 方法一:一条一条循环添加 通常我们的第一反应是采用for或foreach循环一条一条的添加. for (int i = 0; i < dgv.Rows.Count; i++) { string sql = "insert into ....."; SqlHelper.ExcuteNonQuery(CommandType.Text, sql, nu

Yii2如何批量添加数据

批量添加这个操作,在实际开发中经常用得到,今天小编抽空给大家整理些有关yii2批量添加的问题,感兴趣的朋友一起看看吧. 在上篇文章给大家介绍了关于浅析Yii2 gridview实现批量删除教程,当然,着重点在于怎么去操作gridview了,今儿我们来好好谈谈yii2如何批量添加数据? 有同学嚷嚷了,这还不简单,我foreach一循环,每个循环里面直接把数据插入到数据库,简单粗暴完事!我擦嘞,哥,你要是跟我在一个公司,我觉得第二天见到你的概率可就不大了! 话不多说,说多了你在骂我,我们步入正题,先

C#中的SqlBulkCopy批量插入数据

在C#中,我们可以使用sqlBulkCopy去批量插入数据,其他批量插入方法不在讨论. 1 /// <summary> 2 /// SqlBulkCopy批量插入数据 3 /// </summary> 4 /// <param name="connectionStr">链接字符串</param> 5 /// <param name="dataTableName">表名</param> 6 ///

SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法

原文:SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法 在new SqlBulkCopy对象的时候,设置一下SqlBulkCopyOptions选项即可,按位或运算 SqlBulkCopyOptions.FireTriggers | SqlBulkCopyOptions.CheckConstraints using (SqlBulkCopy bulkCopy = new SqlBulkCopy(GlobalString.ConnectionString, SqlBulkCopy

ADO.NET批量添加数据到SQL Server—BulkCopy使用指南

BulkCopy位于System.Data.SqlClient命名空间,允许你使用其他源的数据有效地批量加载 SQL Server 表. 属性: BatchSize :每个批处理中的行数. 在每个批处理结束时,批处理中的行将发送到服务器. BulkCopyTimeout:超时之前可用于完成操作的秒数. ColumnMappings:返回 SqlBulkCopyColumnMapping 项的集合. 列映射定义数据源中的列和目标中的列之间的关系. DestinationTableName:服务器上

用SqlBulkCopy批量插入数据到SqlServer数据库表中

首先创建一个数据库连接类:SQLHelper using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Data; namespace insetData { public class SQLHelper { public static readonly string Strconn = "Data

使用事务和SqlBulkCopy批量插入数据

SqlBulkCopy是.NET Framework 2.0新增的类,位于命名空间System.Data.SqlClient下,主要提供把其他数据源的数据有效批量的加载到SQL Server表中的功能.类似与 Microsoft SQL Server 包中名为 bcp 的命令行应用程序.但是使用 SqlBulkCopy 类可以编写托管代码解决方案,性能上优于bcp命令行应用程序,更优于如Insert方式向SQL Server表加载大量数据.SqlBulkCopy可以应用到大批量数据的转移上,而不

SqlBulkCopy 批量复制数据到数据表

使用 SqlBulkCopy 类只能向 SQL Server 表写入数据.但是,数据源不限于 SQL Server:可以使用任何数据源,只要数据可加载到 DataTable 实例或可使用 IDataReader 实例读取数据 使用Datatable作为数据源的方式: 下面的代码使用到了ColumnMappings,因为目标表和数据源Datatable的结构不一致,需要这么一个映射来指定对应关系 public string SaveJHCData(LzShopBasicData[] datas)