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");
        }    

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。