大量批次儲存用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://msdn.microsoft.com/zh-tw/library/system.data.sqlclient.sqlbulkcopy(VS.80).aspx
Jenny:
陽光令人愉快,雨水令人振作,
風聲令人奮起,雪花令人興奮,
沒有所謂的壞天氣!!
只有不同的好天氣!!