標籤:des style blog color os io 資料 for
public void InsertTable(DataTable dt, string TabelName, DataColumnCollection dtColum) { //string str = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString(); //聲明資料庫連接 SqlConnection conn = new SqlConnection(strconn); conn.Open(); //聲明SqlBulkCopy ,using釋放非託管資源 using (SqlBulkCopy sqlBC = new SqlBulkCopy(conn)) { //一次批量的插入的資料量 sqlBC.BatchSize = 1000; //逾時之前操作完成所允許的秒數,如果逾時則事務不會提交 ,資料將復原,所有已複製的行都會從目標表中移除 sqlBC.BulkCopyTimeout = 60; //設定 NotifyAfter 屬性,以便在每插入10000 條資料時,呼叫相應事件。 sqlBC.NotifyAfter = 10000; // sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler(OnSqlRowsCopied); //設定要批量寫入的表 sqlBC.DestinationTableName = TabelName; //自訂的datatable和資料庫的欄位進行對應 //sqlBC.ColumnMappings.Add("id", "tel"); //sqlBC.ColumnMappings.Add("name", "neirong"); for (int i = 0; i < dtColum.Count; i++) { sqlBC.ColumnMappings.Add(dtColum[i].ColumnName.ToString(), dtColum[i].ColumnName.ToString()); } //批量寫入 sqlBC.WriteToServer(dt); } conn.Dispose(); } //響應時事件 void OnSqlRowsCopied(object sender, SqlRowsCopiedEventArgs e) { // Response.Write("<br/> OK! "); }