批量插入,以前我的做法是生成一堆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