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

        }    

 

你可能感兴趣的:(asp.net)