標籤:c# sql 整表插入
說明:
(1)表A的一部分資料插入到表B
(2)DataAccess 類,是放在DAL層下的底層類;
da.StrConnection 寫在DataAccess類中;
//整表插入方法
private void InsertTable() {
DataAccess da = new DataAccess();
string sql=" select 0,欄位1,欄位2,欄位3.. from 表A where MainTop_ID in (" + mainID + ")";
DataTable dt = new DataTable();
dt = DataAccess.GetDataSet(sql, false, null).Tables[0]; //把查詢結果放到表dt中
using (SqlBulkCopy sqlBC = new SqlBulkCopy(da.StrConnection)) {
//一次批量的插入的資料量
sqlBC.BatchSize = 100000;
//逾時之前操作完成所允許的秒數,如果逾時則事務不會提交 ,資料將復原,所有已複製的行都會從目標表中移除
sqlBC.BulkCopyTimeout = 60;
//設定 NotifyAfter 屬性,以便在每插入10000 條資料時,呼叫相應事件。
sqlBC.NotifyAfter = 10000;
// sqlBC.SqlRowsCopied += new SqlRowsCopiedEventHandler();
//設定要批量寫入的表
sqlBC.DestinationTableName = "表B";
//批量寫入
sqlBC.WriteToServer(dt);
}
}
private static string strConnection = ""; //變數記錄連接字串
public string StrConnection
{
get { return strConnection; } //返回成員變數_name的值
set { strConnection = value; } //對屬性設定值用value關鍵字表示,將value用_name儲存下來!
}
圖示:
C# SQL 整表插入