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 Program 10 { 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 }