大量批次儲存~SqlBulkCopy

  • 2350
  • 0

大量批次儲存用SqlBulkCopy會比下SqlCommand有效率唷!!

今天在網路看到做批次儲存的做法,

看到原來有這樣的一個類,

雖然目前我沒有需要用到這麼大量的資料,

不過可以做個記錄,以備以後使用。

using(SqlConnection Conn = new SqlConnection(strConnString)) 
{ 
    Conn.Open(); 
    SqlCommand Comm = new SqlCommand("SELECT EmployeeID, LastName, FirstName FROM Employees", Conn); 

    SqlDataReader dr; 
    
    dr = Comm.ExecuteReader(); 
    using (SqlConnection bcConn = new SqlConnection(strConnString)) 
    { 
        bcConn.Open(); 
        using (SqlBulkCopy bc = new SqlBulkCopy(bcConn)) 
        { 
          //要存入的資料庫 
            bc.DestinationTableName = "dbo.TestEmployees"; 

          //欄位對應 
           bc.ColumnMappings.Add("EmployeeID", "EmployeeID"); 
          bc.ColumnMappings.Add("LastName", "LastName"); 
          bc.ColumnMappings.Add("FirstName", "FirstName"); 
          try 
          { 
             for (int i = 0; i < 1000; i++) 
                bc.WriteToServer(dr); 
          } 
          catch (Exception ex) 
          { 
              Console.WriteLine(ex.Message); 
          } 
          if (dr != null) 
              dr.Close(); 
        } 
    }
}

參考網站:

http://demo.tc/Post/283

http://msdn.microsoft.com/zh-tw/library/system.data.sqlclient.sqlbulkcopy(VS.80).aspx

 

Jenny:
    陽光令人愉快,雨水令人振作,
    風聲令人奮起,雪花令人興奮,
    沒有所謂的壞天氣!!
    只有不同的好天氣!!