C# 將DataTable表中的數據批量插入到數據庫表中的方法


C#中有時候需要將內存中的數據批量插入到數據庫表中,使用for循環進行批量插入不但耗時而且會頻繁操作數據庫。

針對數據量很少的可以使用for循環插入,但是針對於數據量大的則不推薦使用for循環插入,推薦使用sql的塊處理插入。

塊處理不但耗時少而且不會頻繁對數據庫進行操作,只是需要注意的一點是DataTable中的列必須與表的列完全一致。

如下代碼是批量插入的一個函數,自測可用。

 1 #region 使用SqlBulkCopy將DataTable中的數據批量插入數據庫中  
 2         /// <summary>  
 3         /// 注意:DataTable中的列需要與數據庫表中的列完全一致。
 4         /// 已自測可用。
 5         /// </summary>  
 6         /// <param name="conStr">數據庫連接串</param>
 7         /// <param name="strTableName">數據庫中對應的表名</param>  
 8         /// <param name="dtData">數據集</param>  
 9         public static void SqlBulkCopyInsert(string conStr, string strTableName, DataTable dtData)
10         {
11             try
12             {
13                 using (SqlBulkCopy sqlRevdBulkCopy = new SqlBulkCopy(conStr))//引用SqlBulkCopy  
14                 {
15                     sqlRevdBulkCopy.DestinationTableName = strTableName;//數據庫中對應的表名  
16                     sqlRevdBulkCopy.NotifyAfter = dtData.Rows.Count;//有幾行數據  
17                     sqlRevdBulkCopy.WriteToServer(dtData);//數據導入數據庫  
18                     sqlRevdBulkCopy.Close();//關閉連接  
19                 }
20             }
21             catch (Exception ex)
22             {
23                 throw (ex);
24             }
25         }
26         #endregion
View Code

  


免責聲明!

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



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