首页 > 代码库 > 用SqlBulkCopy实现批量插入数据

用SqlBulkCopy实现批量插入数据

1、建立一张测试表 test

CREATE TABLE test
(
 F_Name NVARCHAR(20) NULL,
 F_Age INT NULL
)
2、SqlBulkCopy批量插入数据
 1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using System.Data.SqlClient; 5 using System.Data; 6  7 namespace sqlbulkcopy 8 { 9     class Program10     {11         static void Main(string[] args)12         {13             DataTable dt = new DataTable();14             dt.Columns.Add("name", typeof(string));15             dt.Columns.Add("age", typeof(int));16 17             DataRow dr = dt.NewRow();18             dr["name"] = "李想";19             dr["age"] = 30;20             dt.Rows.Add(dr);21 22             dr = dt.NewRow();23             dr["name"] = "陈琦";24             dr["age"] = 25;25             dt.Rows.Add(dr);26 27             using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("数据库连接串"))28             {29                 conn.Open();30                 using (System.Data.SqlClient.SqlBulkCopy bulk = new System.Data.SqlClient.SqlBulkCopy(conn))31                 {32                     bulk.DestinationTableName = "test"; //要导入的数据表名33                     bulk.BatchSize = dt.Rows.Count;    //每一批次中的行数34                     bulk.ColumnMappings.Add("name", "F_Name");    //设置数据源中的列和目标表中的列之间的映射关系35                     bulk.ColumnMappings.Add("age", "F_Age");36                     bulk.WriteToServer(dt);37                     if (bulk != null)38                     {39                         bulk.Close();40                     }41                 }42                 conn.Close();43             }44         }45     }46 }