ASP.Net 使用SqlBulkCopy批量插入

批量插入,以前我的做法是生成一堆insert into的sql语句,然后用程序一次值行,来实现。

今天看到了ASP.Net里可以使用DataTable,先将数据写入到DataTable中,然后使用SqlBulkCopy方法,给他传递一个DataTable类型,他自动会实现批量插入。

速度极快。

做法备注一下在这里,以便日后查阅

    protected void Button1_Click(object sender, EventArgs e)
        {
            //准备要批量插入的数据
            DataTable table = new DataTable();
            table.Columns.Add("Age");
            table.Columns.Add("Name");

            DataRow row = table.NewRow();
            row["Age"] = 28;
            row["Name"] = "Jack";
            table.Rows.Add(row);

            DataRow row1 = table.NewRow();
            row1["Age"] = 29;
            row1["Name"] = "Fei";
            table.Rows.Add(row1);

            string connectionStr = "server=.;database=Demo;uid=sa;pwd=123456";
            using (SqlBulkCopy bulkCopy = new SqlBulkCopy(connectionStr))
            {
                bulkCopy.DestinationTableName = "Person";//在插入的目标表
    //DataTable列名与数据库列名的映射
                bulkCopy.ColumnMappings.Add("Age", "Age");
                bulkCopy.ColumnMappings.Add("Name", "Name");
                bulkCopy.WriteToServer(table);//写入到数据库中
            }

            Response.Write("ok");
        }    
时间: 2024-10-23 16:02:46

ASP.Net 使用SqlBulkCopy批量插入的相关文章

ADO.NET 新特性之SqlBulkCopy(批量插入大量数据)

转自:http://blog.csdn.net/huaer1011/article/details/2312361 在.Net1.1中无论是对于批量插入整个DataTable中的所有数据到数据库中,还是进行不同数据源之间的迁移,都不是很方便.而在.Net2.0中,SQLClient命名空间下增加了几个新类帮助我们通过DataTable或DataReader批量迁移数据.数据源可以来自关系数据库或者XML文件,甚至WebService返回结果.其中最重要的一个类就是SqlBulkCopy类,使用它

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

用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

.net 使用SqlBulkCopy批量插入数据库

//一次批量插入100W条数据到数据库 static void Main(string[] args) { System.Random a = new Random(System.DateTime.Now.Millisecond); Stopwatch sw = new Stopwatch(); DataTable dt = GetTableSchema(); for (int count = 0; count < 1000000; count++) { DataRow r = dt.NewRo

sqlhelper(带sqlbulkcopy批量插入)

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient; namespace DataController{    static class SqlHelper    {        const int SQLTimeout = 120;        const string Connectio

使用SqlBulkCopy批量插入多条数据进入表中

由于工作中项目需求结算一次生成一批相同批次号的数据插入一个表中,然后再通过另一页面展示出来,所以需要用到一次性插入一批数据,所以就采用了SqlBulkCopy插入一批数据 1 public static int InsertSettlementRecord(SqlConnection connection, List<InventorySettlement> model) 2 { 3 DataTable dt = GetTableSchema(); 4 SqlBulkCopy bulkCopy

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

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

Asp.Net使用Bulk批量插入数据

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Diagnostics; 6 using System.Data; 7 using System.Data.SqlClient; 8 using System.Configuration; 9 using Fx678Member.Framework.Exceptions; 10 11