C# 批量導入 SqlBulkCopy


 

快速批量導入方法 SqlBulkCopy

 1         public string InsertSqlBulkCopy(DataTable dt, string tableName, ref string errinfo)
 2         {
 3             if (dt.Rows.Count < 1)
 4             {
 5                 return "";
 6             }
 7             using (SqlConnection conn = new SqlConnection(SqlHelper.connectionString))
 8             {
 9                 conn.Open();
10                 SqlTransaction sqlTran = conn.BeginTransaction(); // 開始事務
11                 //開始事務
12                 using (SqlBulkCopy bcp = new SqlBulkCopy(conn, SqlBulkCopyOptions.Default, sqlTran))
13                 {
14                     string sql = @"
15 select  sourceColumn, destinationColumn from Importsolution where tableName='" + tableName + @"'";
16                     DataTable Importsolution = SqlHelper.GetDataSet(sql).Tables[0];
17                     foreach (DataRow dr in Importsolution.Rows)
18                     {
19                         bcp.ColumnMappings.Add(dr["sourceColumn"].ToString(), dr["destinationColumn"].ToString());
20                     }
21 
22                     //指定目標數據庫的表名
23                     bcp.DestinationTableName = tableName;
24 
25                     try
26                     {
27                         //bcp.BulkCopyTimeout = 180;
28                         //寫入數據庫表?dt?是數據源DataTable
29                         bcp.WriteToServer(dt);
30                         sqlTran.Commit();
31 
32                     }
33                     catch (Exception ex)
34                     {
35                         errinfo += ex.Message + "";
36                         sqlTran.Rollback();
37                     }
38                     finally
39                     {
40                         sqlTran.Dispose();
41                     }
42 
43                 }
44             }
45             return "";
46         }
SqlBullCopy

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM