1 /// <summary>
2 /// 利用SqlBulkCopy实现从excel到sql表的数据导入
3 /// </summary>
4 /// <param name="tableName">数据源</param>
5 /// <param name="destinTable">目的表</param>
6 public void SqlBulkCopyInsert(DataTable tableName, string destinTable, SqlConnection conn, bool flag)
7 {
8 SqlBulkCopy sbc = new SqlBulkCopy(conn);
9
10 if (conn.State == ConnectionState.Closed)
11 {
12 conn.Open();
13 }
14 sbc.DestinationTableName = destinTable; //获取要导入的目的数据表
15 try
16 {
17 sbc.WriteToServer(tableName); //执行写入操作
18 }
19 catch (Exception ex)
20 {
21 Console.WriteLine(ex.Message);
22 }
23 finally
24 {
25 sbc.Close();
26 if (flag)
27 {
28 conn.Close();
29 }
30 }
31 }
其实代码很简单,最犀利的一句就是WriteToServer(tableName)。这个不解释啊,10000...记得是一百万条数据写入库中只要4秒多。。。要注意的就是待写入的数据集的字段格式要和数据库中的目的数据表的字段格式相同,说了半天就是表的框架和内容要完全一样,才可以写入。。。写入那叫一个快,一个哦~缺点是写入前的数据判断和过滤,逼近省事就意为着费功。